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

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

 更新時(shí)間:2013年09月11日 15:32:24   作者:  
這篇文章介紹了Android之RAS加密算法測(cè)試實(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);  
            //密鑰對(duì)  
            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
  • 最新評(píng)論

    威远县| 邢台市| 吉隆县| 涡阳县| 塔河县| 安阳县| 韶关市| 青海省| 偏关县| 台中县| 六枝特区| 霍城县| 崇信县| 克山县| 雅安市| 玛沁县| 天镇县| 襄汾县| 大同市| 龙江县| 望都县| 宝坻区| 荥阳市| 广宁县| 阿坝县| 永登县| 读书| 兖州市| 凯里市| 赤水市| 德保县| 全州县| 全椒县| 裕民县| 田东县| 吉林市| 大方县| 法库县| 定安县| 高雄市| 广宗县|