java python rsa加密_实现Java加密,Python解密的RSA非对称加密算法功能

摘要

因为最近业务需要使用到openssl的rsa非对称加密算法,研究了下它的使用方式,但是特殊在于前端分IOS和android两端,所以前端部门要求使用java给他们做一个加密工具包,但是因为服务端是python做的,所以需要两端的数据能够共通。研究了几天终于搞定了,下面是一些重要的代码以及一些我踩过的坑,分享一下。

欢迎访问我的Github

OpenSSL官网

一. 编译

make

Perl 5

an ANSI C compiler

a development environment in form of development libraries and C

header files

a supported Unix operating system

二. 安装

$ ./config

$ make

$ make test

$ make install

三. 生成密钥

生成的密钥的路径是你当前执行命令的路径

这里默认生成1024长度密钥

公钥是基于私钥来生成的,所以必须先生成私钥

# 进入openssl

root@VM-0-15-ubuntu:/home/ubuntu# openssl

# 生成一个1024位的私钥文件rsa_private_key.pem

OpenSSL> genrsa -out rsa_private_key.pem 1024

# 从私钥中提取公钥rsa_public_key.pem

OpenSSL> rsa -in rsa_private_key.pem -out rsa_public_key.pem -outform PEM -pubout

# 将私钥转换成 DER 格式

OpenSSL> rsa -in rsa_private_key.pem -out rsa_private_key.der -outform der

# 将公钥转换成 DER 格式

OpenSSL> rsa -in rsa_public_key.pem -out rsa_public_key.der -pubin -outform der

# 把RSA私钥转换成PKCS8格式

OpenSSL> pkcs8 -topk8 -in rsa_private_key.pem -out pkcs8_rsa_private_key.pem -nocrypt

# 从私钥创建公钥证书请求

OpenSSL> req -new -key rsa_private_key.pem -out rsa_public_key.csr

# 生成证书并签名(有效期10年)

OpenSSL> x509 -req -days 3650 -in rsa_public_key.csr -signkey rsa_private_key.pem -out rsa_public_key.crt

# 把crt证书转换为der格式

OpenSSL> x509 -outform der -in rsa_public_key.crt -out rsa_public_key.der

# 把crt证书生成私钥p12文件

OpenSSL> pkcs12 -export -out rsa_private_key.p12 -inkey rsa_private_key.pem -in rsa_public_key.crt

1.JAVA端加密

其实单一语言的加解密都还是比较简单的,关键在于跨语言

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值