300字范文,内容丰富有趣,生活中的好帮手!
300字范文 > 非对称算法之一RSA加密解密的java demo

非对称算法之一RSA加密解密的java demo

时间:2021-09-01 11:03:58

相关推荐

非对称算法之一RSA加密解密的java demo

RSA加密算法,著名的非对称加密算法之一。

1,私钥加密,公钥解密例子(通常用在数字证书签名上)。

package rsa;import mons.codec.binary.Base64;import javax.crypto.Cipher;import java.security.*;import java.security.interfaces.RSAPrivateKey;import java.security.interfaces.RSAPublicKey;import java.security.spec.PKCS8EncodedKeySpec;import java.security.spec.X509EncodedKeySpec;import java.time.Duration;import java.time.Instant;/*** Hello world!**/public class RSAPrivateDemo {private static String str = "本人擅长Ai、Fw、Fl、Br、Ae、Pr、Id、Ps等软件的安装与卸载,精通CSS、JavaScript、PHP、ASP、C、C++、C#、Java、Ruby、Perl、Lisp、python、Objective-C、ActionScript、Pascal等单词的拼写,熟练掌握Windows、Linux、Mac、Android、IOS、WP8等系统的开关机";public static void encryptMsg() {try {// 1. 初始化秘钥KeyPairGenerator keyPairGenerator = KeyPairGenerator.getInstance("RSA");keyPairGenerator.initialize(1024 * 4); //设置加密最大长度KeyPair keyPair = keyPairGenerator.generateKeyPair();RSAPublicKey rsaPublicKey = (RSAPublicKey) keyPair.getPublic();RSAPrivateKey rsaPrivateKey = (RSAPrivateKey) keyPair.getPrivate();System.out.println("RSAPublicKey: " + Base64.encodeBase64String(rsaPublicKey.getEncoded()));System.out.println("RSAPrivateKey: " + Base64.encodeBase64String(rsaPrivateKey.getEncoded()));// 2. 私钥加密 公钥解密-------加密Instant start1 = Instant.now();PKCS8EncodedKeySpec pkcs8EncodedKeySpec = new PKCS8EncodedKeySpec(rsaPrivateKey.getEncoded());KeyFactory keyFactory = KeyFactory.getInstance("RSA");PrivateKey privateKey = keyFactory.generatePrivate(pkcs8EncodedKeySpec);Cipher cipher = Cipher.getInstance("RSA");cipher.init(Cipher.ENCRYPT_MODE, privateKey);byte[] result = cipher.doFinal(str.getBytes());Instant end1 = Instant.now();System.out.println("私钥加密-公钥解密-------加密: " + Base64.encodeBase64String(result));System.out.println("加密耗时:" + Duration.between(start1, end1).toMillis() + "毫秒");// 3. 私钥加密 公钥解密-------解密Instant start2 = Instant.now();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);Instant end2 = Instant.now();System.out.println("私钥加密-公钥解密-------解密: " + new String(result));System.out.println("解密耗时:" + Duration.between(start2, end2).toMillis() + "毫秒");} catch (Exception e) {e.printStackTrace();}}public static void main(String[] args) {RSAPrivateDemo.encryptMsg();}}

下面是运行结果:

RSAPublicKey: MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAlQ0ebgcvOPGTwhAv3nYbtNhRdyQHi+dW4zsIBuurzo5WYym2msh9+TBGRO0EBNFDku8Cp8RAAdn+9kfmmTmwH4Qz6ew2qWjnUABiNt6reU0XAq9EoR0rDwoXF+LT6bcP33YHh2x8IB5lz6SGq9wW8lztZy3cubdz0ucpM385Q5o6f6vyaEcsae8Ga/Xvo/k3deTs8q71r/YFLm/WEBkIIgtSzfSQdQOkpe4QZW5HwW8d97IWSiA+X7q4rEYK6KIpjOLcD2B7VA4YZ7XtX+gWJqjS0uv8kHLM/rn3cr3ejkKhAcueVsooH6bnyD5uW5aW+B8mm+Hgrya40GfcrBJQB/C1uInBTj59JD63OXP4E5RBvF4JwFE8tIMl9hsr1LJ1YzZAQjr0YM/MZ3uhIzqHa4tfcKX/uhhuBsT3GlTL9UveW9MGkOOsJ/l9WPIDqF5Z6csBchZSYaYxInx+s1nIKdMKN7l3n9UnykueMn++xT+K6IYRExcpQVjtpzyXH2jwOXkb//9awsImXLWxApdMvd30kEKlBvy1ONhgozHnm5+mDzyQB6cjF/MPpnZbSO4IUdyadVZvvERsMoXE7wD5t1qHuMTYPUJynfklr43IWUOOpD17hySEzXa0tF90WdFKxi2JAsgBYhdcCrq2DRSGNJVkZVqxfeYw4ybfxlbogGUCAwEAAQ==RSAPrivateKey: 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私钥加密-公钥解密-------加密: PwMO7pSXT3CqzMOdrBZUjU0fb+rZc8lJcUmcMDwF7ZGlA5s+eL9ACQGVfg270x39fAtSXgtiEQcy37+V77SYgIkPNlgjMq86IZ20+9OMPUwQJq7hCxeQK+4/eJ4Iq9NgmLos+tdxh+Lu02bC9cEiaklPrq5u0ZsZIbmH1FEIJ5cwrtLRTBm3omj5VKQiIzPW8QKWII49ym7lJqh4+rMSH5wjH3gWyX+B2CDvPAFbLAa+f8Ru/0X5sk8HXhuAZkrDeny1Ml9DlajAP7wQP7HBr0NIWOmv93mWUB0cV+x0WM9BN6bVkY4clbmZVBxE18VaKTaKeonpgG2+l2hYm+zuN4ROGkF+s1iv5xMIYPj1VgO0RjwWbgviXOQ2DFbn8DeqLalra5S6g3200axBsQsrlXLIqbXvn8YjTiigCcv1jeqkB7BwymISFaNkD0UX+U/KzvokmhrRb9L1/AlA0BrwUJ70aAcir3hsU4eRPmSmVXlkpKnF15cP95aUOYrEnZXN0WFvQTwcWyB8CdsOfcH/uygPsCpr7XrDA1pZXnkLnn9Fs3X0kF+EobfiENag+gAgGuVmO9CUIJot//jg6ZH9uHht+P3WCwhnde+goQ/5L1ZUb0tvGZmg2W2MX0NRJgWlsEjH6sojHPRk6W4DU8NrJjn1/ANDDXgAv0WbAwOUD2E=加密耗时:367毫秒私钥加密-公钥解密-------解密: 本人擅长Ai、Fw、Fl、Br、Ae、Pr、Id、Ps等软件的安装与卸载,精通CSS、JavaScript、PHP、ASP、C、C++、C#、Java、Ruby、Perl、Lisp、python、Objective-C、ActionScript、Pascal等单词的拼写,熟练掌握Windows、Linux、Mac、Android、IOS、WP8等系统的开关机解密耗时:1毫秒

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。