a亚洲精品_精品国产91乱码一区二区三区_亚洲精品在线免费观看视频_欧美日韩亚洲国产综合_久久久久久久久久久成人_在线区

首頁 > 系統 > Android > 正文

Android之RAS加密算法測試實例

2020-04-11 12:03:14
字體:
來源:轉載
供稿:網友
復制代碼 代碼如下:

import java.security.Key;  
import java.security.KeyFactory;  
import java.security.KeyPair;  
import java.security.KeyPairGenerator;  
import java.security.PrivateKey;  
import java.security.PublicKey;  
import java.security.interfaces.RSAPrivateKey;  
import java.security.interfaces.RSAPublicKey;  
import java.security.spec.PKCS8EncodedKeySpec;  
import java.security.spec.X509EncodedKeySpec;  

import javax.crypto.Cipher;  

import sun.misc.BASE64Decoder;  
import sun.misc.BASE64Encoder;  

   
public class RSAHelper {  

       
      public static PublicKey getPublicKey(String key) throws Exception {  
            byte[] keyBytes;  
            keyBytes = (new BASE64Decoder()).decodeBuffer(key);  

            X509EncodedKeySpec keySpec = new X509EncodedKeySpec(keyBytes);  
            KeyFactory keyFactory = KeyFactory.getInstance("RSA");  
            PublicKey publicKey = keyFactory.generatePublic(keySpec);  
            return publicKey;  
      }  

      public static PrivateKey getPrivateKey(String key) throws Exception {  
            byte[] keyBytes;  
            keyBytes = (new BASE64Decoder()).decodeBuffer(key);  

            PKCS8EncodedKeySpec keySpec = new PKCS8EncodedKeySpec(keyBytes);  
            KeyFactory keyFactory = KeyFactory.getInstance("RSA");  
            PrivateKey privateKey = keyFactory.generatePrivate(keySpec);  
            return privateKey;  
      }  

       
      public static String getKeyString(Key key) throws Exception {  
            byte[] keyBytes = key.getEncoded();  
            String s = (new BASE64Encoder()).encode(keyBytes);  
            return s;  
      }  

   
      public static void main(String[] args) throws Exception {  

            KeyPairGenerator keyPairGen = KeyPairGenerator.getInstance("RSA");  
            //密鑰位數  
            keyPairGen.initialize(1024);  
            //密鑰對  
            KeyPair keyPair = keyPairGen.generateKeyPair();  

            // 公鑰  
            PublicKey publicKey = (RSAPublicKey) keyPair.getPublic();  

            // 私鑰  
            PrivateKey privateKey = (RSAPrivateKey) keyPair.getPrivate();  

            String publicKeyString = getKeyString(publicKey);  
            System.out.println("public:/n" + publicKeyString);  

            String privateKeyString = getKeyString(privateKey);  
            System.out.println("private:/n" + privateKeyString);  

            //加解密類  
            Cipher cipher = Cipher.getInstance("RSA");//Cipher.getInstance("RSA/ECB/PKCS1Padding");  

            //明文  
            byte[] plainText = "我們都很好!郵件:@sina.com".getBytes();  

            //加密  
            cipher.init(Cipher.ENCRYPT_MODE, publicKey);  
            byte[] enBytes = cipher.doFinal(plainText);  

           //通過密鑰字符串得到密鑰  
            publicKey = getPublicKey(publicKeyString);  
            privateKey = getPrivateKey(privateKeyString);  

            //解密  
            cipher.init(Cipher.DECRYPT_MODE, privateKey);  
            byte[]deBytes = cipher.doFinal(enBytes);  

            publicKeyString = getKeyString(publicKey);  
            System.out.println("public:/n" +publicKeyString);  

            privateKeyString = getKeyString(privateKey);  
            System.out.println("private:/n" + privateKeyString);  

            String s = new String(deBytes);  
            System.out.println(s);  

   
      }  

}
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 国产精品视频男人的天堂 | 暖暖视频日韩欧美在线观看 | 日韩精品一区二区在线观看 | 亚洲国产精品久久久久 | 国产精品久久久久久免费一级 | 欧美成亚洲 | 四虎影视最新免费版 | 超碰免费在线观看 | 婷婷丁香五 | 一区三区视频 | 久久久精品999 | 亚洲免费视频在线观看 | 国产精品99久久久久久动医院 | 久久精品久久久 | 国产精久久久久久久妇剪断 | 欧美精品一区三区 | 美女h在线观看 | 日韩欧美三级在线 | av在线一区二区三区 | 国产激情视频 | 色啪网| 国产精品美女久久久久高潮 | 操操日 | 精品福利一区二区三区 | 91精品国产99久久久久久红楼 | 成人在线免费网站 | 亚洲欧美91 | 日韩欧美二区 | 色人人 | 欧美一区二区精品 | 天堂一区二区三区在线 | 精品国产一区二区在线 | 午夜免费观看视频 | 四虎www4hu永久免费 | 一区二区三区久久 | 国产精品一区二区三区在线 | 97人人爽 | 九色 在线| 69久久夜色精品国产7777 | 韩国av一区二区 | 久久成人一区 |