返回顶部
首页 > 资讯 > 移动开发 >Android之RAS加密算法测试实例
  • 791
分享到

Android之RAS加密算法测试实例

ras算法测试算法测试Android 2022-06-06 10:06:29 791人浏览 独家记忆
摘要

代码如下:import java.security.Key;   import java.security.KeyFactory;  

代码如下:
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();  
            // 公钥  
       &nbs p;    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);  
   
      }  
}
您可能感兴趣的文章:简单讲解iOS应用开发中的MD5加密的相关使用一行代码实现IOS 3DES加密解密iOS中使用MD5加密字符串iOS中MD5加密算法的介绍和使用iOS常用加密算法介绍和代码实践Android md5加密与rsa加解密实现代码Android AES加密工具类分享Android 加密解密字符串详解Android实现短信加密功能(发送加密短信、解密本地短信)Android、iOS和Java通用的AES128加密解密示例代码


--结束END--

本文标题: Android之RAS加密算法测试实例

本文链接: https://lsjlt.com/news/27341.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作