源码网商城,靠谱的源码在线交易网站 我的订单 购物车 帮助

源码网商城

Android之RAS加密算法测试实例

  • 时间:2021-09-14 15:30 编辑: 来源: 阅读:
  • 扫一扫,手机访问
摘要:Android之RAS加密算法测试实例
[u]复制代码[/u] 代码如下:
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);             }   }
  • 全部评论(0)
联系客服
客服电话:
400-000-3129
微信版

扫一扫进微信版
返回顶部