Rsa 加密与解密
2016-02-29 19:18
162 查看
1. OpenSSL生成出来的私钥可能是Base64编码的,所有需要了解Base64编码是什么东西。
参考资料:http://www.cnblogs.com/chengxiaohui/articles/3951129.html
2. OpenSSL生成的私钥,从Base64转成Byte[]之后,有一定的格式,通过解析byte[],可以得到的就是Rsa需要的数据。
参考 : http://blog.sina.com.cn/s/blog_4fcd1ea30100yh4s.html
此时文件为BASE64编码,在openssl中执行以下命令,将BASE64编码的文件装换成二进制编码:
openssl base64 -d -in private_rsa.pem -out private.pem
生成的private.pem 文件为BASE64解码后的文件,此文件是将RSA密钥语法中的结构进行DER
编码后的二进制表现形式。对其进行解析,解析结果如下:
标签头 3082025c(4 bytes) 类型为SEQUENCE 后接 604 bytes
020100 INTEGER 长度为0 内容为:VERSION
028181 INTEGER 长度为129 bytes 内容为: n(modulus)
00e7b0dd45eba985ea1eb2fd7a7237e654ff0e40c9e5818d9348aa2df7fc04e7e2a429c3e9
031eb2b217bb10fd1370ead89b33dd2233a54e035e37d39ba63db3d138926cdc9a01e8b6a8
ef84949b9f1a3bd4fe0adeeb3b9d84fb7af98f20d089c75197a94884b8a03400d73c3fcaa0
dc1fad1ac2cb0e304c73198521dcf1e50779
0203 INTEGER 长度为3 bytes 内容为: e(publicExponent)
010001
028180 INTEGER 长度为128 bytes 内容为: d(privateExponent)
0554c882a75d8b3b4be18a7b9acd367b9632d9c2cb89239cd3fb367b924cfa98f8760d8ffb
0665ce3b458eaa841c010b62e6da9bc2dc76e314f3ebe694f8ae7e82bd7e8e3b7cbb17d4f1
4263d4c328bd5d16566004098953b851dbb87f802a38af73ccb9bfec9eaee7fac92b6daad9
6d7d49e90d68e5460a148aeb22334e6c41
0241 INTEGER 长度为65 bytes 内容为: p(prime1)
00f40c8cc874c39b3d452e5be257835d24cff6b2627de2af1666a799e073e6fd5997d238f7
a1641b0b5ac21bd5e0bbcbd0d932165f050fec3da3bcd2dbea24c505
0241 INTEGER 长度为65 bytes 内容为: q(prime2)
00f30963dc1df32b6d292be1e3faf1620256909aa20b4d27efffd8cc9bcb5b55f5edf9b1eb
99974d8ebb865500dbed5da95bd1de1b93e00c1def29778e8957c2e5
0240 INTEGER 长度为64 bytes
内容为: d mod(p-1) exponent1
62290a17369fd6b8f6328752aad0738e72f74f18be7986e303b735f549a9070e1a3abc1f1e
131dad9b7ba7a68716020ca6cfb69fd1716e1bfcd7de18063d73e1
0240 INTEGER 长度为 64 bytes
内容为: d mod (q-1) exponent
3ce3565c58388ae1af55ea22f6c4b0bc4b39b133f5c6dfc1960497c6545d4e9ced81081d31
7ea194a7d090cd454c2392018a03ae3f0efb9a2847e847128ba52d
0241 INTEGER 长度为65 bytes 内容为:
q -1 mod p coefficient
00eb5a32f31620e1bb980467829c2a7c9d3b2f8d7f4f42131ed7a289825f0aeaf390b542c7
55c0dcc94dfaee609fba2c50731b6a1d197b7b9a91267acdade62f96
参考资料:http://www.cnblogs.com/chengxiaohui/articles/3951129.html
2. OpenSSL生成的私钥,从Base64转成Byte[]之后,有一定的格式,通过解析byte[],可以得到的就是Rsa需要的数据。
参考 : http://blog.sina.com.cn/s/blog_4fcd1ea30100yh4s.html
此时文件为BASE64编码,在openssl中执行以下命令,将BASE64编码的文件装换成二进制编码:
openssl base64 -d -in private_rsa.pem -out private.pem
生成的private.pem 文件为BASE64解码后的文件,此文件是将RSA密钥语法中的结构进行DER
编码后的二进制表现形式。对其进行解析,解析结果如下:
标签头 3082025c(4 bytes) 类型为SEQUENCE 后接 604 bytes
020100 INTEGER 长度为0 内容为:VERSION
028181 INTEGER 长度为129 bytes 内容为: n(modulus)
00e7b0dd45eba985ea1eb2fd7a7237e654ff0e40c9e5818d9348aa2df7fc04e7e2a429c3e9
031eb2b217bb10fd1370ead89b33dd2233a54e035e37d39ba63db3d138926cdc9a01e8b6a8
ef84949b9f1a3bd4fe0adeeb3b9d84fb7af98f20d089c75197a94884b8a03400d73c3fcaa0
dc1fad1ac2cb0e304c73198521dcf1e50779
0203 INTEGER 长度为3 bytes 内容为: e(publicExponent)
010001
028180 INTEGER 长度为128 bytes 内容为: d(privateExponent)
0554c882a75d8b3b4be18a7b9acd367b9632d9c2cb89239cd3fb367b924cfa98f8760d8ffb
0665ce3b458eaa841c010b62e6da9bc2dc76e314f3ebe694f8ae7e82bd7e8e3b7cbb17d4f1
4263d4c328bd5d16566004098953b851dbb87f802a38af73ccb9bfec9eaee7fac92b6daad9
6d7d49e90d68e5460a148aeb22334e6c41
0241 INTEGER 长度为65 bytes 内容为: p(prime1)
00f40c8cc874c39b3d452e5be257835d24cff6b2627de2af1666a799e073e6fd5997d238f7
a1641b0b5ac21bd5e0bbcbd0d932165f050fec3da3bcd2dbea24c505
0241 INTEGER 长度为65 bytes 内容为: q(prime2)
00f30963dc1df32b6d292be1e3faf1620256909aa20b4d27efffd8cc9bcb5b55f5edf9b1eb
99974d8ebb865500dbed5da95bd1de1b93e00c1def29778e8957c2e5
0240 INTEGER 长度为64 bytes
内容为: d mod(p-1) exponent1
62290a17369fd6b8f6328752aad0738e72f74f18be7986e303b735f549a9070e1a3abc1f1e
131dad9b7ba7a68716020ca6cfb69fd1716e1bfcd7de18063d73e1
0240 INTEGER 长度为 64 bytes
内容为: d mod (q-1) exponent
3ce3565c58388ae1af55ea22f6c4b0bc4b39b133f5c6dfc1960497c6545d4e9ced81081d31
7ea194a7d090cd454c2392018a03ae3f0efb9a2847e847128ba52d
0241 INTEGER 长度为65 bytes 内容为:
q -1 mod p coefficient
00eb5a32f31620e1bb980467829c2a7c9d3b2f8d7f4f42131ed7a289825f0aeaf390b542c7
55c0dcc94dfaee609fba2c50731b6a1d197b7b9a91267acdade62f96
相关文章推荐
- 操作系统中的IPC机制
- Java学习笔记(四):流程控制
- LeetCode Pascal's Triangle II
- 【转】看见成长的自己:斯坦福大学心理学教授徳韦克访谈
- 使用OS X系统远程连接Windows Server服务器
- iOS开发--网络编程基础
- PHP预定义接口之 ArrayAccess
- android File文件保存和读取
- openrc.sh for openstack cli
- ARC基本知识点
- HDU 1828 Picture (线段树扫描线求周长并 区间合并)
- Gradle笔记
- 安装和破解完美支持Mac Retina的 Photoshop CS6 Extended 13.0.6
- 28.广搜:被围住的面积
- wamp 登录界面制作连接数据库
- 28.广搜:被围住的面积
- 28.广搜:被围住的面积
- 28.广搜:被围住的面积
- 28.广搜:被围住的面积
- 28.广搜:被围住的面积