iis服务器助手广告广告
返回顶部
首页 > 资讯 > 精选 >RSA加密的方式和解密方式实现方法(推荐)
  • 384
分享到

RSA加密的方式和解密方式实现方法(推荐)

rsa加密解密 2023-05-31 12:05:51 384人浏览 安东尼
摘要

RSAsecurity.javapackage com.mstf.rsa; import java.security.KeyFactory;import java.security.KeyPair;import java.security.

RSAsecurity.java

package com.mstf.rsa; 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 com.sun.org.apache.xerces.internal.impl.dv.util.Base64; public class RSAsecurity {  public static String src = "admin";  public void priENpubDE() {   try {   // 初始化秘钥   KeyPairGenerator keyPairGenerator = KeyPairGenerator.getInstance("RSA");   // 秘钥长度   keyPairGenerator.initialize(1024);   // 初始化秘钥对   KeyPair keyPair = keyPairGenerator.generateKeyPair();   // 公钥   RSAPublicKey rsaPublicKey = (RSAPublicKey) keyPair.getPublic();   // 私钥   RSAPrivateKey rsaPrivateKey = (RSAPrivateKey) keyPair.getPrivate();    // 2.私钥加密,公钥解密----加密   // 生成私钥   PKCS8EncodedKeySpec pkcs8EncodedKeySpec = new PKCS8EncodedKeySpec(rsaPrivateKey.getEncoded());   KeyFactory keyFactory = KeyFactory.getInstance("RSA");   PrivateKey privateKey = keyFactory.generatePrivate(pkcs8EncodedKeySpec);   // Cipher类为加密和解密提供密码功能,通过getinstance实例化对象   Cipher cipher = Cipher.getInstance("RSA");   // 初始化加密   cipher.init(Cipher.ENCRYPT_MODE, privateKey);   byte[] result = cipher.doFinal(src.getBytes());   System.out.println("私钥加密,公钥解密----加密:" + Base64.encode(result));    // 3.私钥加密,公钥解密----解密   // 生成公钥   X509EncodedKeySpec x509EncodedKeySpec = new X509EncodedKeySpec(rsaPublicKey.getEncoded());   keyFactory = KeyFactory.getInstance("RSA");   PublicKey publicKey = keyFactory.generatePublic(x509EncodedKeySpec);   cipher = Cipher.getInstance("RSA");   // 初始化解密   cipher.init(Cipher.DECRYPT_MODE, publicKey);   result = cipher.doFinal(result);   System.out.println("私钥加密,公钥解密----解密:" + new String(result));  } catch (Exception e) {   // TODO Auto-generated catch block   e.printStackTrace();  }  }  public void pubENpriDE() {  try {   // 1.初始化秘钥   KeyPairGenerator keyPairGenerator = KeyPairGenerator.getInstance("RSA");   // 秘钥长度   keyPairGenerator.initialize(512);   // 初始化秘钥对   KeyPair keyPair = keyPairGenerator.generateKeyPair();   // 公钥   RSAPublicKey rsaPublicKey = (RSAPublicKey) keyPair.getPublic();   // 私钥   RSAPrivateKey rsaPrivateKey = (RSAPrivateKey) keyPair.getPrivate();    // 2.公钥加密,私钥解密----加密   X509EncodedKeySpec x509EncodedKeySpec = new X509EncodedKeySpec(rsaPublicKey.getEncoded());   KeyFactory keyFactory = KeyFactory.getInstance("RSA");   PublicKey publicKey = keyFactory.generatePublic(x509EncodedKeySpec);   // 初始化加密   // Cipher类为加密和解密提供密码功能,通过getinstance实例化对象   Cipher cipher = Cipher.getInstance("RSA");   cipher.init(Cipher.ENCRYPT_MODE, publicKey);   // 加密字符串   byte[] result = cipher.doFinal(src.getBytes());   System.out.println("公钥加密,私钥解密----加密:" + Base64.encode(result));    // 3.公钥加密,私钥解密-----解密   PKCS8EncodedKeySpec pkcs8EncodedKeySpec = new PKCS8EncodedKeySpec(rsaPrivateKey.getEncoded());   keyFactory = KeyFactory.getInstance("RSA");   PrivateKey privateKey = keyFactory.generatePrivate(pkcs8EncodedKeySpec);   // 初始化解密   cipher.init(Cipher.DECRYPT_MODE, privateKey);   // 解密字符串   result = cipher.doFinal(result);   System.out.println("公钥加密,私钥解密-----解密:" + new String(result));   } catch (Exception e) {   // TODO Auto-generated catch block   e.printStackTrace();  }  }}

--结束END--

本文标题: RSA加密的方式和解密方式实现方法(推荐)

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

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

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

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

  • 微信公众号

  • 商务合作