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

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

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));           }}

 

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

你可能感兴趣的文章
【LEETCODE】165-Compare Version Numbers
查看>>
【LEETCODE】299-Bulls and Cows
查看>>
【LEETCODE】223-Rectangle Area
查看>>
【LEETCODE】12-Integer to Roman
查看>>
【学习方法】如何分析源代码
查看>>
【LEETCODE】61- Rotate List [Python]
查看>>
【LEETCODE】143- Reorder List [Python]
查看>>
【LEETCODE】82- Remove Duplicates from Sorted List II [Python]
查看>>
【LEETCODE】86- Partition List [Python]
查看>>
【LEETCODE】147- Insertion Sort List [Python]
查看>>
【算法】- 动态规划的编织艺术
查看>>
用 TensorFlow 让你的机器人唱首原创给你听
查看>>
对比学习用 Keras 搭建 CNN RNN 等常用神经网络
查看>>
深度学习的主要应用举例
查看>>
word2vec 模型思想和代码实现
查看>>
怎样做情感分析
查看>>
用深度神经网络处理NER命名实体识别问题
查看>>
用 RNN 训练语言模型生成文本
查看>>
RNN与机器翻译
查看>>
用 Recursive Neural Networks 得到分析树
查看>>