博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
私钥加密公钥解密
阅读量:2162 次
发布时间:2019-05-01

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

import com.sun.org.apache.xml.internal.security.utils.Base64;import org.apache.commons.io.FileUtils;import javax.crypto.Cipher;import javax.crypto.spec.SecretKeySpec;import java.io.File;import java.nio.charset.Charset;import java.security.*;import java.security.spec.PKCS8EncodedKeySpec;public class RSAdemo {    public static void main(String[] args) throws Exception {        String input = "硅谷";        // 加密算法        String algorithm = "RSA";        //  创建密钥对生成器对象        KeyPairGenerator keyPairGenerator = KeyPairGenerator.getInstance(algorithm);        // 生成密钥对        KeyPair keyPair = keyPairGenerator.generateKeyPair();        // 生成私钥        PrivateKey privateKey = keyPair.getPrivate();        // 生成公钥        PublicKey publicKey = keyPair.getPublic();        // 获取私钥字节数组        byte[] privateKeyEncoded = privateKey.getEncoded();        // 获取公钥字节数组        byte[] publicKeyEncoded = publicKey.getEncoded();        // 对公私钥进行base64编码        String privateKeyString = Base64.encode(privateKeyEncoded);        String publicKeyString = Base64.encode(publicKeyEncoded);        // 创建加密对象        // 参数表示加密算法        Cipher cipher = Cipher.getInstance(algorithm);        // 初始化加密        // 第一个参数:加密的模式        // 第二个参数:使用私钥进行加密        cipher.init(Cipher.ENCRYPT_MODE,privateKey);        // 私钥加密        byte[] bytes = cipher.doFinal(input.getBytes());        System.out.println(Base64.encode(bytes));        // 私钥进行解密        cipher.init(Cipher.DECRYPT_MODE,publicKey);        // 对密文进行解密,不需要使用base64,因为原文不会乱码        byte[] bytes1 = cipher.doFinal(bytes);        System.out.println(new String(bytes1));    }}

 

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

你可能感兴趣的文章
运行springboot项目出现:Type javax.xml.bind.JAXBContext not present
查看>>
Java中多线程向mysql插入同一条数据冲突问题
查看>>
Idea Maven项目使用jar包,添加到本地库使用
查看>>
FastDFS集群架构配置搭建(转载)
查看>>
HTM+CSS实现立方体图片旋转展示效果
查看>>
FFmpeg 命令操作音视频
查看>>
问题:Opencv(3.1.0/3.4)找不到 /opencv2/gpu/gpu.hpp 问题
查看>>
目的:使用CUDA环境变量CUDA_VISIBLE_DEVICES来限定CUDA程序所能使用的GPU设备
查看>>
问题:Mysql中字段类型为text的值, java使用selectByExample查询为null
查看>>
程序员--学习之路--技巧
查看>>
解决问题之 MySQL慢查询日志设置
查看>>
contOS6 部署 lnmp、FTP、composer、ThinkPHP5、docker详细步骤
查看>>
TP5.1模板布局中遇到的坑,配置完不生效解决办法
查看>>
PHPstudy中遇到的坑No input file specified,以及传到linux环境下遇到的坑,模板文件不存在
查看>>
TP5.1事务操作和TP5事务回滚操作多表
查看>>
composer install或composer update 或 composer require phpoffice/phpexcel 失败解决办法
查看>>
TP5.1项目从windows的Apache服务迁移到linux的Nginx服务需要注意几点。
查看>>
win10安装软件 打开时报错 找不到 msvcp120.dll
查看>>
PHPunit+Xdebug代码覆盖率以及遇到的问题汇总
查看>>
PHPUnit安装及使用
查看>>