博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
java中的数据加密3 非对称加密
阅读量:5927 次
发布时间:2019-06-19

本文共 1104 字,大约阅读时间需要 3 分钟。

  非对称加密也加公钥加密,不对称算法使用一对密钥对,一个公钥,一个私钥,使用公钥加密的数据,只有私钥能解开(可用于加密);同时,使用私钥加密的数据,只有公钥能解开(签名)。但是速度很慢(比私钥加密慢100到1000倍),公钥的主要算法有RSA,还包括Blowfish,Diffie-Helman等

import java.security.KeyPair;import java.security.KeyPairGenerator;import javax.crypto.Cipher;public class PublicTest {    public static void main(String[] args) throws Exception {        byte[] srcText = "public key encryption test".getBytes("UTF8");        // 构成一个RSA密钥        KeyPairGenerator keyGen = KeyPairGenerator.getInstance("RSA");        keyGen.initialize(1024);        KeyPair key = keyGen.generateKeyPair();        // 获得一个RSA的Cipher类,使用公鈅加密        Cipher cipher = Cipher.getInstance("RSA/ECB/PKCS1Padding");        System.out.println(" " + cipher.getProvider().getInfo());        cipher.init(Cipher.ENCRYPT_MODE, key.getPublic());        byte[] cipherText = cipher.doFinal(srcText);        System.out.println(new String(cipherText, "UTF8"));        // 使用私鈅解密        cipher.init(Cipher.DECRYPT_MODE, key.getPrivate());        byte[] newPlainText = cipher.doFinal(cipherText);        System.out.println(new String(newPlainText, "UTF8"));    }}

 

转载地址:http://mthvx.baihongyu.com/

你可能感兴趣的文章
清橙A1202&Bzoj2201:彩色圆环
查看>>
使用data pump工具的准备
查看>>
springMVC---级联属性
查看>>
get和post区别
查看>>
项目总结26:java调用webservice接口(asmx)
查看>>
crontab执行shell脚本日志中出现乱码
查看>>
打造自己博客(wordpress)的wap手机版本
查看>>
Floodlight 在 ChannelPipeline 图
查看>>
leetcode-Word Ladder II
查看>>
VS2017调试闪退之Chrome
查看>>
做移动互联网App,你的测试用例足够吗?
查看>>
cmd.exe启动参数说明
查看>>
私活利器,docker快速部署node.js应用
查看>>
《随笔记录》20170310
查看>>
网站分析系统
查看>>
一站式解决,Android 拍照 图库的各种问题
查看>>
JavaScript匿名函数以及在循环中的匿名函数
查看>>
中国HBase技术社区第五届MeetUp ——HBase技术解析及应用实践(深圳站)
查看>>
lsof命令
查看>>
阿里云云计算ACP考试知识点(标红为重点)
查看>>