国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 系統 > 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);  

   
      }  

}
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 杭锦旗| 石泉县| 姚安县| 神池县| 万荣县| 子洲县| 陈巴尔虎旗| 高雄县| 鹰潭市| 水富县| 奈曼旗| 千阳县| 呼和浩特市| 尼木县| 琼中| 铁岭市| 巢湖市| 抚松县| 竹北市| 钟山县| 枣庄市| 特克斯县| 贵州省| 北安市| 云林县| 栖霞市| 乐清市| 长沙市| 白河县| 九龙县| 轮台县| 紫阳县| 三亚市| 巨野县| 衡山县| 尖扎县| 延津县| 武乡县| 调兵山市| 田东县| 祁东县|