最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Android之RAS加密算法測試實(shí)例

 更新時(shí)間:2013年09月11日 15:32:24   作者:  
這篇文章介紹了Android之RAS加密算法測試實(shí)例,有需要的朋友可以參考一下
復(fù)制代碼 代碼如下:

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");  
            //密鑰位數(shù)  
            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);  

   
      }  

}

相關(guān)文章

  • Android自定義EditText右側(cè)帶圖片控件

    Android自定義EditText右側(cè)帶圖片控件

    這篇文章主要為大家詳細(xì)介紹了Android自定義EditText右側(cè)帶圖片控件的方法,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2016-10-10
  • 最新評論

    无棣县| 抚松县| 博客| 弥渡县| 桐柏县| 云林县| 太谷县| 富阳市| 民勤县| 新乐市| 静宁县| 广南县| 乌苏市| 湖南省| 德江县| 天长市| 资溪县| 贡山| 道孚县| 常宁市| 澳门| 遂昌县| 富阳市| 芦山县| 阿尔山市| 厦门市| 徐闻县| 朔州市| 西华县| 江达县| 绥滨县| 平塘县| 玉田县| 淄博市| 东安县| 彩票| 黔江区| 衢州市| 苗栗市| 新巴尔虎左旗| 会东县|