openssl rsa 公钥加密怎么用RSA-CRT计算

开源openssl之加密与解密---如何用&openssl&生成RSA双密匙;签名证书;加密文件邮件
网上已有好多关于openssl的帖子,但是基本上都很“实用”,只讲如何创建证书来用于数据的加密,如何你只需要这些,那么可以去&
“流浪的脚步”的博客
如果你需要多了解点openssl的,继续看下去吧
openssl 的功能:
& * 生成RSA,DSA双密匙(还可以再给他们签名)
& * 生成X509 证书
& * 计算印章(MD5,SHA,,RIPEMD160)用于加密大文件
&& *加密,解密 (算法有 DES, IDEA,RC2 ,
RC4, Blowfish...)
&& *SSL 服务器端/客户端测试
&& * 处理签名或加密了的邮件
假设你已经安装了openssl, 下面在我分点讲解,然后在每一点后面加一个例子
1.生成一对RSA密匙(非对称密匙,包含1个公共+一个私用),
&$ openssl genrsa
&fichier&&
&例子: openssl
genrsa -out& maCle.pem 1024
&可以用查看我们的密匙
$&cat&maCle.pem&&
&&&&&BEGIN&RSA&PRIVATE&KEY&&&&&&&&
MIICXAIBAAKBgQCveVjLltevTC5kSAiTYjHMVuAR80DHMLWCp3BOVZ49eXwraXxO&&
7AfKWpA5g0wFZgZNERIfFYaCnvaQDQA+9BRIfsSSr3oSw0My5SD6eg15v0VmJmvP&&
d8LgBypJHbr6f5MXWqntvzp0Qvg6ddeNpUIrqkkh4uDfHFDWqyrkQUCvKwIDAQAB&&
AoGANchUrfnq28DWy0fE0R+cscvC292Z8jN8vrIBWxEk8iSlKU0om6v+a0g8wlP6&&
3&gC6V66uxjY7xxdf7SD+/UykVl4PGFymhLtywSdGlgec3tLgBtV3ytJFilAVDBij&&
LzQwUegCO4zt1JWYc6vvaVdNyQSaGIIeYGsNDWEYlOtDSlkCQQDVRn9JS15G8p+H&&
4Z0PbU9ZQg2L1u9/SD/kELVe3Kx1fdHulxH0v8V2AgPdXA29Nhi+TxUtC+V8CMc2&&
KXmAvFsHAkEA0qBDmjHMDPwcGaqbQ2lymYQIGlZ5TLQFA98Dey2uE+CB6pmS/&e&/Z&&
ilu1IaasuE3vBzXfB&/JU7DUkV++JQ7TtvQJBAL2s5dUch2sXqlOhjhpDP/eE7CE6&&
9WLAsbm2Nmd4YJRZYtQLXPfLeeSapC9BCCMHsnfGQ3H9i4mFEQ6VUi7w1Q8CQAQa&&
pVaS09QI8Y86eM4GdvowzWud9b0d4N8jcFDtIfA3NrDYjzmte8KraMsgEUuCET9F&&
uHPSL/9uRagE/dq44s0CQCMQU4PMqkMtwzCFsV8ZqLmkDPn1binIAwRLYFcsQRDt&&
gTi6rycz3Pk1hCVzBfyMd8zwqpwKmR5FoOXuJEv+mVg=&&
&&&&&END&RSA&PRIVATE&KEY&&&&&&&&&
用cat只看到了一些字符串,但我们完全不懂他的含义,openssl还提供了一个功能就是查看RSA
& 如果研究过非对称加密的朋友,可以用这个命令看出这对密匙的生成参数: 2个大素数,
&& $ openssl rsa -in
&fichier& -text
&&$openssl&rsa&&in&maCle.pem&&text&&noout&&
Private&&Key&:&(1024&bit)&&
modulus&:&&
&&&&&&&&0&0&:&a&f&:&7&9&:&5&8&:&cb&:&9&6&:&d7&:&a&f&:&4&c&:&2&e&:&6&4&:&4&8&:&0&8&:&9&3&:&6&2&:&&
&&&&&&&&3&1&:&c&c&:&5&6&:&e0&:&1&1&:&f&3&:&4&0&:&c7&:&3&0&:&b5&:&8&2&:&a7&:&7&0&:&4&e&:&5&5&:&&
&&&&&&&&9&e&:&3&d&:&7&9&:&7&c&:&2&b&:&6&9&:&7&c&:&4&e&:&e&c&:&0&7&:&ca&:&5&a&:&9&0&:&3&9&:&8&3&:&&
&&&&&&&&4c&:05:66:06:4&d&:11:12:1&f&:15:86:82:9&e&:&f6&:90:0&d&:&&
&&&&&&&&0&0&:&3&e&:&f&4&:&1&4&:&4&8&:&7&e&:&c4&:&9&2&:&a&f&:&7&a&:&1&2&:&c3&:&4&3&:&3&2&:&e5&:&&
&&&&&&&&2&0&:&f&a&:&7&a&:&0&d&:&7&9&:&b&f&:&4&5&:&6&6&:&2&6&:&6&b&:&c&f&:&7&7&:&c2&:&e0&:&0&7&:&&
&&&&&&&&2&a&:&4&9&:&1&d&:&ba&:&f&a&:&7&f&:&9&3&:&1&7&:&5&a&:&a9&:&ed&:&b&f&:&3&a&:&7&4&:&4&2&:&&
&&&&&&&&f&8&:&3&a&:&7&5&:&d7&:&8&d&:&a5&:&4&2&:&2&b&:&aa&:&4&9&:&2&1&:&e2&:&e0&:&d&f&:&1&c&:&&
&&&&&&&&5&0&:&d6&:&ab&:&2&a&:&e4&:&4&1&:&4&0&:&a&f&:&2&b&&
publicExponent:&65537&(&0&x10001&)&&
privateExponent&:&&
&&&&&&&&3&5&:&c8&:&5&4&:&ad&:&f&9&:&ea&:&db&:&c0&:&d6&:&cb&:&4&7&:&c4&:&d1&:&1&f&:&9&c&:&&
&&&&&&&&b1&:&cb&:&c2&:&db&:&dd&:&9&9&:&f&2&:&3&3&:&7&c&:&be&:&b2&:&0&1&:&5&b&:&1&1&:&2&4&:&&
&&&&&&&&f&2&:&2&4&:&a5&:&2&9&:&4&d&:&2&8&:&9&b&:&ab&:&f&e&:&6&b&:&4&8&:&3&c&:&c2&:&5&3&:&f&a&:&&
&&&&&&&&de&:&0&0&:&ba&:&5&7&:&ae&:&ae&:&c6&:&3&6&:&3&b&:&c7&:&1&7&:&5&f&:&ed&:&2&0&:&f&e&:&&
&&&&&&&&f&d&:&4&c&:&a4&:&5&6&:&5&e&:&0&f&:&1&8&:&5&c&:&a6&:&8&4&:&bb&:&7&2&:&c1&:&2&7&:&4&6&:&&
&&&&&&&&9&6&:&0&7&:&9&c&:&de&:&d2&:&e0&:&0&6&:&d5&:&7&7&:&ca&:&d2&:&4&5&:&8&a&:&5&0&:&1&5&:&&
&&&&&&&&0&c&:&1&8&:&a3&:&2&f&:&3&4&:&3&0&:&5&1&:&e8&:&0&2&:&3&b&:&8&c&:&ed&:&d4&:&9&5&:&9&8&:&&
&&&&&&&&7&3&:&ab&:&e&f&:&6&9&:&5&7&:&4&d&:&c9&:&0&4&:&9&a&:&1&8&:&8&2&:&1&e&:&6&0&:&6&b&:&0&d&:&&
&&&&&&&&0d&:&6&1&:&1&8&:&9&4&:&eb&:&4&3&:&4&a&:&5&9&&
prime1&:&&
&&&&&&&&0&0&:&d5&:&4&6&:&7&f&:&4&9&:&4&b&:&5&e&:&4&6&:&f&2&:&9&f&:&8&7&:&e1&:&9&d&:&0&f&:&6&d&:&&
&&&&&&&&4&f&:&5&9&:&4&2&:&0&d&:&8&b&:&d6&:&e&f&:&7&f&:&4&8&:&3&f&:&e4&:&1&0&:&b5&:&5&e&:&dc&:&&
&&&&&&&&ac&:&7&5&:&7&d&:&d1&:&e&e&:&9&7&:&1&1&:&f&4&:&b&f&:&c5&:&7&6&:&0&2&:&0&3&:&dd&:&5&c&:&&
&&&&&&&&0d&:&bd&:&3&6&:&1&8&:&be&:&4&f&:&1&5&:&2&d&:&0&b&:&e5&:&7&c&:&0&8&:&c7&:&3&6&:&2&9&:&&
&&&&&&&&7&9&:&8&0&:&bc&:&5&b&:&0&7&&
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&2&&
prime2&:&&
&&&&0&0&:&d2&:&a0&:&4&3&:&9&a&:&3&1&:&c&c&:&0&c&:&f&c&:&1&c&:&1&9&:&aa&:&9&b&:&4&3&:&6&9&:&&
&&&&7&2&:&9&9&:&8&4&:&0&8&:&1&a&:&5&6&:&7&9&:&4&c&:&b4&:&0&5&:&0&3&:&d&f&:&0&3&:&7&b&:&2&d&:&&
&&&&ae&:&1&3&:&e0&:&8&1&:&ea&:&9&9&:&9&2&:&f&d&:&e&f&:&d9&:&8&a&:&5&b&:&b5&:&2&1&:&a6&:&&
&&&&ac&:&b8&:&4&d&:&e&f&:&0&7&:&3&5&:&d&f&:&0&7&:&f&2&:&5&4&:&e&c&:&3&5&:&2&4&:&5&7&:&e&f&:&&
&&&&8&9&:&4&3&:&b4&:&ed&:&bd&&
exponent1&:&&
&&&&0&0&:&bd&:&ac&:&e5&:&d5&:&1&c&:&8&7&:&6&b&:&1&7&:&aa&:&5&3&:&a1&:&8&e&:&1&a&:&4&3&:&&
&&&&3&f&:&f&7&:&8&4&:&e&c&:&2&1&:&3&a&:&f&5&:&6&2&:&c0&:&b1&:&b9&:&b6&:&3&6&:&6&7&:&7&8&:&&
&&&&6&0&:&9&4&:&5&9&:&6&2&:&d4&:&0&b&:&5&c&:&f&7&:&cb&:&7&9&:&e4&:&9&a&:&a4&:&2&f&:&4&1&:&&
&&&&0&8&:&2&3&:&0&7&:&b2&:&7&7&:&c6&:&4&3&:&7&1&:&f&d&:&8&b&:&8&9&:&8&5&:&1&1&:&0&e&:&9&5&:&&
&&&&5&2&:&2&e&:&f&0&:&d5&:&0&f&&
exponent2&:&&
&&&&0&4&:&1&a&:&a5&:&5&6&:&9&2&:&d3&:&d4&:&0&8&:&f&1&:&8&f&:&3&a&:&7&8&:&c&e&:&0&6&:&7&6&:&&
&&&&f&a&:&3&0&:&cd&:&6&b&:&9&d&:&f&5&:&bd&:&1&d&:&e0&:&d&f&:&2&3&:&7&0&:&5&0&:&ed&:&2&1&:&&
&&&&f&0&:&3&7&:&3&6&:&b0&:&d8&:&8&f&:&3&9&:&ad&:&7&b&:&c2&:&ab&:&6&8&:&cb&:&2&0&:&1&1&:&&
&&&&4b&:&8&2&:&1&1&:&3&f&:&4&5&:&b8&:&7&3&:&d2&:&2&f&:&f&f&:&6&e&:&4&5&:&a8&:&0&4&:&f&d&:&&
&&&&da&:&b8&:&e2&:&cd&&
coefficient&:&&
&&&&2&3&:&1&0&:&5&3&:&8&3&:&c&c&:&aa&:&4&3&:&2&d&:&c3&:&3&0&:&8&5&:&b1&:&5&f&:&1&9&:&a8&:&&
&&&&b9&:&a4&:&0&c&:&f&9&:&f&5&:&6&e&:&2&9&:&c8&:&0&3&:&0&4&:&4&b&:&6&0&:&5&7&:&2&c&:&4&1&:&&
&&&&1&0&:&ed&:&8&1&:&3&8&:&ba&:&a&f&:&2&7&:&3&3&:&dc&:&f&9&:&3&5&:&8&4&:&2&5&:&7&3&:&0&5&:&&
&&&&f&c&:&8&c&:&7&7&:&c&c&:&f&0&:&aa&:&9&c&:&0&a&:&9&9&:&1&e&:&4&5&:&a0&:&e5&:&e&e&:&2&4&:&&
&&&&4b&:&f&e&:&9&9&:&5&8&&&
&2.很多时候让刚刚生成的密匙以明码的形式存在是有危险的,所以openssl还提供了用对称加密法(DES,
DES3等)加密RSA密匙的功能
&$ openssl rsa -in &RSA
密码 文件& -des3
密码 文件&
$opensslrsa&&in&maCle.pem&&des3&&out&maCle.pem&&
w&r&i&t&i&n&g&RSA&key&&
Enter&PEM&p&a&s&s&p&h&r&a&s&e&:&&
V&e&r&i&f&y&i&n&g&&&Enter&PEM&p&a&s&s&p&h&r&a&s&e&:&&
刚才说过,RSA包含1个公共+一个私密匙,openssl提供将公用部分从密匙里提取出来,因为在跟对方交流时,对方只要你的公共部分就可以了,如果你的私有部分也被人知道了,那RSA加密的意义就失去了;
所以记住:RSA的私有密匙只能有你一个人知道,如果泄露了,得马上更新一对新的RSA 密匙
&$openssl rsa -in
& -pubout -out
公共密码 文件
$openssl&rsa&&in&maCle.pem&&pubout&&out&maClePublique.pem&&
4.加密文件
&$openssl rsautl -encrypt -in
&原始文件& -inkey
密码 文件& -out
&输出文件&
或者只用公用密码加密
&$openssl rsautl -encrypt -in
&原始文件& -inkey -pubin
公共 密码 文件& -out
&输出文件&
5。解密的话只要将 -encrypt 改为
-decrypt就好,当然文件对象改变一下
备注:对于超过64字节的文件,就不适用非对称性加密,采用加密时,会提示数据太大的错误。对于大文件的加密,基本思路如下:
使用摘要作为对称加密的key,对大文件进行加密 file.enc
openssl enc -e -aes-128-cbc -in install.log -out
install.enc --kfile
使用非对称公钥对key(摘要)进行加密 hash.dgst
&&--》 把加密后的key 和
加密后的数据一起发送到对方
&采用路第四步的方法将KEY加密
&&使用私钥解密hash.dgst,得到一个摘要(对称加密的key)
&&使用该摘要作为key,解密大文件bigfile.txt.enc
6. 签名不只适合小文件,如果对大文件的话得引进印章(Message Digests). 先计算该文件的印章
& 对于第6步印章其原理是对文件进行邮戳处理,仅仅是防止被篡改,而不是加密。
openssl dgst
&hachage算法&&
-out& &印章文件&
&原始大文件&
& .签名文件。
&& openssl rsautl -sign
-inkey private.pem -in
&印章文件& -out
file_to_be_singed
& 检查签名情况:
&& openssl rsautl -verify
-inkey private.pem -in file_to_be_singed
& 最后比较二个印章文件
是否相同,判断是否被篡改
&$ openssl dgst
&hachage算法&&
-out& &印章文件&
&原始大文件&
&hachage算法有:
* MD5& (-md5)
* SHA1 (-sha1)
* RPEMD160 (-ripemd160)
& 然后要对该印章签名
openssl rsautl -sign -in
&印章文件&& -inkey
密码 文件& -out
&签名文件&
&然后我们就可以将原始大文件+它的签名文件 发给对方了,
在对方可以用我们提供给他的RSA
公共 密码 文件 验证该文件,如果符合就说明是我们的文件;否则说明在传输过程中该文件已被人篡改过,不能相信这个文件内容
对方的验证方法:
先从受到的签名文件中获取“对方印章文件1
&$ openssl rsautl
-verify& -in
&签名文件& -pubin
公共 密码 文件
&对方印章文件1&
然后从收到的原始大文件中用同样的hachage算法 算出另一个““对方印章文件2
&$ openssl dgst
&hachage算法&&
-out& &对方印章文件2&
&原始大文件&
最后只要比较这两个获得的 “对方印章文件1
”与 ““对方印章文件2
”是否完全相同,如果是就说明文件未必篡改
& 对方印章文件1 &
& 对方印章文件2 &
7.证书的创建
首先得建立一个证书申请请求:
&创建文件 f , 包含我们的个人信息
default_bits&&&&&&&&&&&&=&1024&&
distinguished_name&&&&&&=&req_DN&&
[&req_DN&]&&
countryName&&&&&&&&&=&"1.&Pays&(code&a&2&lettres)&"&&
countryName_default&&&&&=&FR&&
countryName_min&&&&&&&&&=&2&&
countryName_max&&&&&&&&&=&2&&
stateOrProvinceName&&&&&=&"2.&Departement&ou&province&"&&
stateOrProvinceName_default&=&Nord&(59)&&
localityName&&&&&&&&&&&&=&"3.&Nom&de&la&localite&"&&
localityName_default&&&&&&&&=&Villeneuve&d/'Ascq&&
0.organizationName&&&&&&=&"4.&Organisation&"&&
0.organizationName_default&&=&Universite&de&Lille&1&&
organizationalUnitName&&&&&&=&"5.&Unite&ou&departement"&&
organizationalUnitName_default&&=&"Licence&&&Master&&info"&&
commonName&&&&&&&&&&=&"6.&Nom&"&&
commonName_max&&&&&&&&&&=&64&&
commonName_default&&&&&&=&Raymond&Calbuth&&
emailAddress&&&&&&&&&&&&=&"7.&Adresse&e-mail&"&&
emailAddress_max&&&&&&&&=&60&&
emailAddress_default&&&&&&&&=&Raymond.Calbuth@ronchin.fr&&
extensions&&&&&&=&x509v3&&
[&x509v3&]&&
subjectAltName&&&&&&=&email:copy&&
basicConstraints&&&&&&&&=&CA:false,pathlen:0&&
nsComment&&&&&&&=&"Certificat&emis&par&$caname"&&
nsCertType&&&&&&=&client,&email,&objsign&&
&$ openssl& req
&f &new &key maCle . pem &out maRequete .
可以查看我们的申请文件
$&openssl&req&&config&<f&&in&maRequete.pem&&text&-noout&&
Certificate&Request&:&&
&&&&&&&&Data&:&&
&&&&&&&&&&&&&&&&V&e&r&s&i&o&n&:&0&(&0&x0&)&&
&&&&&&&&&&&&&&&&S&u&b&j&e&c&t&:&C=FR,&ST=Nord&(&5&9&)&,&L=V&i&l&l&e&n&e&u&v&e&d&'&Ascq&,&O=U&n&i&v&e&r&s&i&t&e&de&L&i&l&l&e&1&,&OU=L&&&
i&n&f&o&,&CN=XXXX&/&e&m&a&i&l&A&d&d&r&e&s&s=xxx@&l&i&f&l&.&f&r&&
&&&&&&&&&&&&&&&&S&u&b&j&e&c&t&P&u&b&l&i&c&Key&I&n&f&o&:&&
&&&&&&&&&&&&&&&&&&&&&&&&P&u&b&l&i&c&Key&Algorithm&:&r&s&a&E&n&c&r&y&p&t&i&o&n&&
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&5&&
&&&&&&&&&&&&&&&&RSA&P&u&b&l&i&c&Key&:&(&2&0&4&8&b&i&t&)&&
&&&&&&&&&&&&&&&&&&&&&&&&Modulus&(&2&0&4&8&b&i&t&)&:&&
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&0&0&:&b4&:&f&3&:&e0&:&6&5&:&5&0&:&1&2&:&f&6&:&5&1&:&c2&:&9&6&:&9&0&:&7&7&:&5&b&:&c3&:&&
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&2&5&:&4&6&:&1&7&:&1&f&:&3&b&:&0&e&:&b9&:&a0&:&5&a&:&f&a&:&2&7&:&1&4&:&2&c&:&4&5&:&9&6&:&&
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&8&8&:&6&8&:&9&c&:&6&0&:&b1&:&8&a&:&9&4&:&2&c&:&2&2&:&7&6&:&f&0&:&de&:&7&e&:&0&2&:&1&b&:&&
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&1d&:&1&d&:&5&7&:&b6&:&b8&:&8&d&:&5&5&:&7&e&:&1&5&:&a4&:&5&d&:&a1&:&c&e&:&0&2&:&7&1&:&&
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&cd&:&5&6&:&3&0&:&dc&:&6&7&:&6&4&:&f&b&:&cb&:&c7&:&bc&:&6&4&:&7&5&:&2&3&:&4&c&:&2&f&:&&
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&a5&:&0&6&:&4&7&:&a6&:&3&9&:&4&6&:&7&4&:&f&1&:&8&a&:&9&1&:&ed&:&ad&:&8&f&:&7&d&:&d3&:&&
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&3&4&:&c0&:&8&7&:&7&9&:&6&1&:&a7&:&b9&:&8&c&:&1&d&:&8&c&:&4&5&:&0&d&:&c4&:&d&f&:&a8&:&&
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&ea&:&2&2&:&0&c&:&5&b&:&f&2&:&0&c&:&6&b&:&1&1&:&8&e&:&2&b&:&f&6&:&6&a&:&9&e&:&b0&:&1&d&:&&
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&e&f&:&5&3&:&e7&:&ba&:&3&2&:&2&8&:&e&e&:&9&8&:&d4&:&8&3&:&1&0&:&6&3&:&6&4&:&c2&:&4&f&:&&
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&4&4&:&1&2&:&5&1&:&f&2&:&a6&:&3&1&:&6&8&:&3&0&:&d2&:&f&9&:&8&d&:&7&a&:&b&f&:&2&3&:&0&9&:&&
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&1&8&:&a4&:&ab&:&0&a&:&2&1&:&f&c&:&2&5&:&8&8&:&ba&:&0&9&:&5&a&:&7&0&:&8&2&:&3&3&:&4&1&:&&
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&9&3&:&f&8&:&d8&:&0&a&:&b4&:&3&8&:&ae&:&4&7&:&8&c&:&4&a&:&d1&:&8&8&:&d1&:&a&f&:&b6&:&&
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&1&8&:&7&7&:&b8&:&8&4&:&4&e&:&7&a&:&ad&:&c0&:&a6&:&2&3&:&e7&:&9&4&:&6&c&:&7&6&:&cb&:&&
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&0d&:&da&:&1&6&:&1&6&:&cb&:&a5&:&0&f&:&7&5&:&a6&:&e0&:&7&8&:&f&f&:&3&3&:&e1&:&d1&:&&
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&5b&:&3&c&:&8&d&:&dd&:&0&6&:&7&a&:&7&2&:&e2&:&be&:&4&8&:&c3&:&1&7&:&4&a&:&4&f&:&bb&:&&
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&e0&:&bb&:&f&b&:&e6&:&bd&:&7&e&:&d4&:&f&8&:&c1&:&2&a&:&5&a&:&4&f&:&6&a&:&3&a&:&e0&:&&
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&2&0&:&e6&:&6&3&:&e5&:&d5&:&6&5&:&e&e&:&d3&:&8&c&:&7&2&:&2&2&:&5&4&:&ca&:&f&2&:&4&0&:&&
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&e&f&:&c1&&
&&&&&&&&&&&&&&&&&&&&&&&&Exponent&:&65537&(&0&x10001&)&&
&&&&&&&&Attributes&:&&
&&&&&&&&&&&&&&&&a0&:&0&0&&
S&i&g&n&a&t&u&r&e&Algorithm&:&sha1WithRSAEncryption&&
&&&&&&&&5&4&:&1&b&:&b8&:&5&2&:&2&8&:&f&1&:&2&9&:&e9&:&5&c&:&2&8&:&bc&:&e3&:&f&6&:&5&8&:&cd&:&0&f&:&e8&:&2&c&:&&
&&&&&&&&a8&:&8&3&:&1&d&:&d6&:&f&3&:&6&b&:&4&6&:&f&8&:&d5&:&c6&:&3&7&:&bb&:&1&5&:&f&5&:&3&4&:&5&8&:&5&6&:&3&d&:&&
&&&&&&&&7b&:&f&1&:&c&e&:&1&d&:&b&f&:&1&4&:&0&9&:&f&e&:&f&e&:&f&3&:&f&1&:&0&7&:&5&4&:&2&7&:&6&0&:&4&5&:&6&a&:&e&f&:&&
&&&&&&&&8&8&:&8&b&:&b7&:&8&9&:&7&4&:&7&7&:&5&e&:&4&d&:&a5&:&5&c&:&ea&:&5&c&:&b8&:&1&c&:&7&a&:&5&7&:&b3&:&8&3&:&&
&&&&&&&&0d&:&2&e&:&1&e&:&6&2&:&8&6&:&f&4&:&0&1&:&d4&:&4&d&:&3&9&:&5&1&:&2&5&:&0&4&:&cb&:&0&0&:&3&3&:&2&a&:&8&4&:&&
&&&&&&&&5&c&:&ae&:&0&a&:&a0&:&6&f&:&6&5&:&c7&:&7&0&:&0&a&:&c&f&:&5&6&:&9&5&:&d1&:&7&0&:&2&2&:&0&5&:&e1&:&f&c&:&&
&&&&&&&&2&a&:&d8&:&9&b&:&2&1&:&3&e&:&0&5&:&bb&:&5&c&:&9&7&:&b4&:&3&5&:&6&7&:&8&5&:&e3&:&1&f&:&8&b&:&8&2&:&3&1&:&&
&&&&&&&&e&f&:&7&6&:&0&b&:&1&7&:&5&3&:&a2&:&0&6&:&4&3&:&7&9&:&1&e&:&cb&:&a5&:&4&5&:&1&d&:&6&a&:&c9&:&d1&:&0&4&:&&
&&&&&&&&0&c&:&4&4&:&d7&:&8&7&:&4&4&:&2&c&:&4&b&:&e&f&:&3&8&:&5&b&:&7&2&:&3&8&:&de&:&f&f&:&7&4&:&ae&:&5&9&:&1&7&:&&
&&&&&&&&1&2&:&f&5&:&8&7&:&8&c&:&0&0&:&5&6&:&0&0&:&3&f&:&f&0&:&d4&:&0&8&:&d2&:&c1&:&4&b&:&ae&:&8&4&:&0&f&:&f&3&:&&
&&&&&&&&d5&:&dd&:&ea&:&4&8&:&0&b&:&8&6&:&3&1&:&8&2&:&c5&:&f&5&:&ae&:&1&d&:&5&2&:&b2&:&c6&:&7&4&:&6&2&:&d1&:&&
&&&&&&&&f&7&:&9&4&:&4&3&:&b2&:&5&d&:&9&a&:&e5&:&5&2&:&c1&:&4&8&:&1&0&:&f&f&:&2&7&:&bb&:&d5&:&e&c&:&0&0&:&b8&:&&
&&&&&&&&aa&:&8&8&:&7&7&:&c3&:&3&6&:&f&9&:&8&7&:&4&1&:&d9&:&da&:&5&8&:&9&a&:&c3&:&2&6&:&8&c&:&ba&:&e3&:&1&9&:&&
&&&&&&&&f&e&:&2&5&:&4&2&:&2&5&:&1&2&:&b4&:&d4&:&7&9&:&e1&:&d9&:&b9&:&9&4&:&d8&:&8&3&:&9&0&:&3&6&:&ac&:&ca&:&&
&&&&&&&&c6&:&a7&:&b2&:&9&c&&&
我们拥有了一个证书申请,还需要一个证书颁发机构CA来给你的申请签名,否则无效
一般情况下,个人可以自己来充当这个CA机构,只需再创建一个证书(大多数人是这样的);
教授提供了一个CA证书(应该具有一点定的权威性吧),大家可以下载复制保存一下
查看证书信息:
$ openssl x509 -in
&证书.pem&&
-text& -noout
pereUbuCertif.pem
-----BEGIN&CERTIFICATE-----&&
MIIEbzCCA1egAwIBAgIJAJHWGHcowKN0MA0GCSqGSIb3DQEBBQUAMIG3MQswCQYD&&
VQQGEwJQTDEeMBwGA1UECBMVUHJvdmluY2UgZGVzIFBhbG90aW5zMRAwDgYDVQQH&&
EwdVYnVQb2xlMRswGQYDVQQKExJSb3lhdW1lIGRlIFBvbG9nbmUxIjAgBgNVBAsT&&
GURlcGFydGVtZW50IGRlcyBQaHluYW5jZXMxETAPBgNVBAMTCFBlcmUgVWJ1MSIw&&
IAYJKoZIhvcNAQkBFhNQZXJlLlVidUBwYWxvdGluLnBsMB4XDTEwMDUyMDA3NDA0&&
MVoXDTE0MDYyODA3NDA0MVowgbcxCzAJBgNVBAYTAlBMMR4wHAYDVQQIExVQcm92&&
aW5jZSBkZXMgUGFsb3RpbnMxEDAOBgNVBAcTB1VidVBvbGUxGzAZBgNVBAoTElJv&&
eWF1bWUgZGUgUG9sb2duZTEiMCAGA1UECxMZRGVwYXJ0ZW1lbnQgZGVzIFBoeW5h&&
bmNlczERMA8GA1UEAxMIUGVyZSBVYnUxIjAgBgkqhkiG9w0BCQEWE1BlcmUuVWJ1&&
QHBhbG90aW4ucGwwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDfggDe&&
ZHhHrFQ/Mig6WUg9q5hrhg9dTjltGngCx+IzCg3RgtgqOTVX23p8/fF9toPN/nzI&&
k3MiW5fx36nDmaiEWcEjx6Fvgj9iwhTBMbeDAHPRLq+cq1ocqInAWxtomZ5kRzk3&&
ywbC1bG8BKNUJXu9+vnrt/Mvd0klQjVFf0zcZQtKq3UcHByDRqwIN+k7RrccewIq&&
nEROpC1v23hyIE4b4K6etp5uO4q+x/sJbil1VW6oE1/4t+6tiqXEDGwMdmGOOf9G&&
znz3+MXpjIr3ak6kCd3sTezV+zAARjwCi3fD1f6aYU5wBvZdaop8HZLaXgav8nMw&&
ZassKX0HZkw3S6TnAgMBAAGjfDB6MB4GA1UdEQQXMBWBE1BlcmUuVWJ1QHBhbG90&&
aW4ucGwwDwYDVR0TBAgwBgEB/wIBADA0BglghkgBhvhCAQ0EJxYlQ2VydGlmaWNh&&
dCBnZW5lcmUgcGFyIEVXIGF2ZWMgb3BlblNTTDARBglghkgBhvhCAQEEBAMCAQYw&&
DQYJKoZIhvcNAQEFBQADggEBAHQGoCe+8ZIixzuwM7IpGuG728ckqblGpK+kiGMr&&
MCMI5iMKo+NnGgUp8yUGk76mV/FrLMaIcjA3PJRPWML33yH2hZau+43mh9x9qZi2&&
Wd/qOxI7/k1GUHZGCocAjdB9cp/LSDAff8js0AlCOFsfZ6AajwSpo6q2fPooTQDm&&
U73lqGUQEBcnZJ7Yz0yulUamtQvKQhPfreiRHwokSiyzkCqDGO36gGOQ3g1FeTUR&&
qONKFGiF6rttiQ3ZBNgQTK0v8nmpBuOcocNvTzMauQLgQOB719X0aWdCisqPV5NS&&
lI5MJvn+anLVk9OzAULuCvfOEHYBiYePDo943+JtGirMT1E=&&
-----END&CERTIFICATE-----&&
PereUbuCle.pem
-----BEGIN&RSA&PRIVATE&KEY-----&&
Proc-Type:&4,ENCRYPTED&&
DEK-Info:&DES-EDE3-CBC,4DEA93&&
MN7eLnDfZE5PhhaHImzdOO5UYyf8Naw4FNWpm/mdWyTfyRgyrhVoQAeoJD68C37a&&
Zkg0oITPoe9OTMv+rqQpBdMI0FE9LaFWhjY3Q/2ZFvoItcNN2DWLWPzAOdlkJUJu&&
tVVM0yQ/2taETUVErU6EqjjZDCF7X+m4IJTRpRsp2sKIZRJvpxRoINlH9yTb8HOe&&
xJQIDJdZi6U9r5wM6pK4SVYrJwkga1tMaHyQb/O1PuZdNQyOe+Ssr4LvFHkb1mKE&&
CCpsOAEc4YzuKNlxfOPuCgCQPTMCp81D/fu0iOk8QC8uaXT8f2e114TPFp5LQlBI&&
GrQn95JEE4eaXmSCbrnzVpicqi90jC3pz23jDaM36EZnzFGiMgLNUyBDB1gscQ6i&&
JXsRPbDhRUvikwjZn7A8CrFmZpf0oZa9qv/BtaLBEVjGGKyVLCwL/0qCbgYHnD1U&&
HSZS2YPS/ybr478thTP8b1QIhzbkkdy8tObhfZ8m3r4thFZXX6STBahuxuALheXs&&
2LlpZLRXpX9HhGjsP5GW8y1NFhNzL/e5T6pw/3EvaP6ez5isfrR0XVq/a9iGjt4/&&
NSFUnQgXRbEwuPD1+EGQ+STSBpdxmf5Z/3pVlWeCB1ZKBb3PKy6EYmnXimBlMVGL&&
D7Qq70GrY9LE5NEBbKGf07UwCJ09/mTVUp390pz/E+BscYXVLabGhAGYBBW8nKTY&&
neDVjZa1QBI89ywrLvrXeNca5Vyoz/IiW/Bg/1QOkIjztPmDY/yi7/fQPuiai6Ag&&
GpWaGZ60UEiBjX4/pkNR0c0p82/GWDlFWyNbKDNy8t1/qnnMtU3e7u7uJ3IA1jc4&&
1TpjFLtjMklepkR+Gc9EvrGil6Ip1W9qp3LolldEFBGVD7BCgLaMN7Yeo7+f2ch0&&
XvAKPfFyulaGp2N6Q7urLtkxYmHnZqAKwr1exLwT1LHYBepmxNUokpgEbI167b90&&
EB6X47rVb5YDbp5ro/8rVo7jzKrbkdA0vTFbmKYGwmlN9wFpC+K5S7uoGhVGtJ7A&&
kMCiRqRlGCJa8+5ALPkfWNSp9c3O+DH28lrB18okF54gNmR65BFp8rlseL/jdvdO&&
tL2WWFoJB8vt0J1JJ5Frvrf1pr2iKqSdoH2l8U4GArvb9lfIZUL4TeVYCctIX8rH&&
iJN1VYg8cie20LBERNfowuG6kMoFg+ekqG4/untcXJ1q/hBeq17rY8eOuIn7N2hz&&
NVRrkLETrwDIzJOWVGlYt2kdC3XK5Zs+X03ofQXKETA2IxL+O8F1dPRMPZDJRSde&&
CmbiTiUgZs6OOXU3KxJs1CnyaA5U0UL385S/DtXY+UiwYEF9+HPi7dxINve0bbtc&&
Fx5TVBcECr2Wu+EU24Xc+XqdofvcWxmAGDoIa+4fzFDwrCRPHRKUS51/BLSAg8QO&&
Sb+AEImPjdbEjXhbkxTD0BLY4K+eQRewi6qbSXSO3udMuDVcIaR0LuzenOCjeA2v&&
AeBn0uDCNi4YtB815OLtKhbJFIQn2tmCC+HLDexhPM0oQViRbJe8EXRrSjUeNYqb&&
f2Gi1qz+EQ2f2feMQmEHTCqMigcbVGWYfs85nH4dZxkt8E2fwPmMbckq4vMk5vRt&&
-----END&RSA&PRIVATE&KEY-----&&
然后创建一个文件PereUbu.srl , 包含一行我们证书的序列号:
91:d6:18:dc:24:c0:a3:24
保存这个CA证书及它的密匙后,我们可以创建我们自己的证书了
$ openssl x509 -days 10
&有效时间&& -CAserial
&序列号文件&& -CA
&CA证书文件&& -CAkey
&CA证书的密匙& -in
&证书申请.pem&&
-req& -out
&证书.pem&
$&openssl&x509&-days&10&-CAserial&PereUbu.srl&-CA&PereUbuCertif.pem&-CAkey&PereUbuCle.pem&-in&maRequete.pem&-req&-out&monCertif.pem&&
已经完成,现在我们可以来检查一下我们的证书是否有效
$ openssl verify -CAfile PereUbuCertif.pem
monCertif.pem
8.介绍一下如何用获得的证书对自己的邮件签名发送到对方
假设: 我们邮件的内容保存在 blabla.txt
中, 那么我们可以用一行命令就可以发送该邮件并附上签名
& $ openssl smime -sign -in
&邮件内容文件 blabla.txt&&
-signer monCertif.pem -inkey maCle.pem -from
&自己的邮箱地址&& -to
&对方邮箱地址& -subject
"邮件主题"
也可以用 -out&
选项讲邮件内容输出到一个文件,然后通过邮箱操作发送
而作为接收邮件的一方,如何检查邮件内容是否被篡改呢?
$ openssl smime -verify -in
&受到的签名邮件 courrier.signe&
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
-signer &邮件附件中的发送方的证书&
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
&CA颁发机构的证书PereUbuCertif.pem&
次发送,接收邮件都用命令,肯定是不方便的,所以我们可以讲我们的证书加载到浏览器中,这样就方便多了。
但是本人建议还是使用邮件桌面软件方便,比如说Ubuntu下自带的“Evolution邮件”支持自己的签名,只要导入证书稍微设置一番,以后发送签名
邮件就更正常邮件一样方便,这里就不多介绍了
已投稿到:
以上网友发言只代表其个人观点,不代表新浪网的观点或立场。&#xe602; 下载
&#xe60c; 收藏
该文档贡献者很忙,什么也没留下。
&#xe602; 下载此文档
正在努力加载中...
针对RSA 算法软件应用的故障攻击研究
下载积分:500
内容提示:
文档格式:PDF|
浏览次数:1|
上传日期: 09:30:29|
文档星级:&#xe60b;&#xe612;&#xe612;&#xe612;&#xe612;
该用户还上传了这些文档
针对RSA 算法软件应用的故障攻击研究.PDF
官方公共微信Thoughts, stories and ideas
致力于前端技术学习研究
Linux系统教程,运维经验分享用C#里的RSACryptoServiceProvider操作openSSL生成的私钥,老不成功是怎么回事,附代码 - ASP.NET - 网站开发技术
帮助别人就是帮助自己!
如果这里解决了您的问题,请您点一下推荐
用C#里的RSACryptoServiceProvider操作openSSL生成的私钥,老不成功是怎么回事,附代码
私钥是用openSSL.exe生成的:-----BEGIN RSA PRIVATE KEY-----MIICXgIBAAKBgQDFBV0Vcqirn4a49EFcu5a9jbOVRj6xZUg6j2oittxFEHwrhNso3YXEP4aP5SBf8gQVTHeUMfLVQqJomCnA7lWrCdsc0YI52+zNeK+m4M60W9I/nISM5rfNQl/3cXxp/S1cKLMPQiMWM0zex2CbCl+o27eNwj/Mtl3eyyeYJEqf1wIDAQABAoGAFspZCysZQckRT4HJsc1tUX37wQ/AHsslgMioMV3Puxl+E5apt19wotPqX+jURuT6/e+7gWQJwAuWN90qL0wikpNM7lNKvMe/wQ4gq6j1JhUQvYdNE8/HxHWyq3AC8IYmZvdE7OGmm66zhCZUX1IiOAo4rAOfcOQSeBa9mfO3eNECQQD0E1Zt9bYvndlE+9JLgRPXPOTccoDgtKk6sGZtjW3JLBwdCqKhq29gnL97ac5D+wlrKHQQ7B97FWWhOWG8hWI5AkEAzqWDLoeu2MN+/rqOun0sAka4l4cV0jmz5wb0gi6FB9aHaOWTAJcUORFY4KE1TjndqRBKi8LCFVCjznY1jObSjwJBAJqxmujsf8DkOa2YMWv7bljP1nnF9Nr2hf+ViAXNSpTjaRobAIKZBmlkT5RntfyuIgURyaZkEXvQTu6FUOXMYDkCQQCT/Fm+d7KSTyZiG43dJYjftG+7LCVHYMViHEv78n6YR1y/lTC6CneUCsVAUJJRDAWebilEf1voUdCNKYBeAGsnAkEAvCKTUc+rFEtmvL6pTNEftr8yE4bG9Svnd/NJOPyXqX6vOGvLDaIk4zKvmyBo3zHiNtqFMqy70fHB8ZpcWTr/Fw==-----END RSA PRIVATE KEY-----public static bool RSAHashSignatureFormatter(string privateKey, string hashByteSignature,  out string strEncryptSignatureData){
byte[] hashByteSignatureArr,encryptedSiguratureDataA
hashByteSignatureArr = Convert.FromBase64String(hashByteSignature);
RSACryptoServiceProvider rsa = new RSACryptoServiceProvider();
rsa.ImportCspBlob(Convert.FromBase64String(privateKey));
RSAPKCS1SignatureFormatter rsaFormater = new RSAPKCS1SignatureFormatter(rsa);
rsaFormater.SetHashAlgorithm(hashType.ToString());
encryptedSiguratureDataArr = rsaFormater.CreateSignature(hashByteSignatureArr);
strEncryptSignatureData = Convert.ToBase64String(encryptedSiguratureDataArr); }每执行到“ImportCspBlob”的时候,就抛出一个“不正确的提供程序版本。”的异常,请教是怎么回事,
mark没用过。net的rsa
Thank your clue, I solved the problem based on it.
1. I found a tool, it can convert the PEM to xml key file.
http://csslab./csslabs/Siva/opensslkey.cs2. I installed the openssl.
2.1 Create a pem private and public key file
C:\Openssl.bin\out32dll&openssl genrsa -out private.pem 1024
C:\Openssl.bin\out32dll&openssl rsa -in private.pem -out public.pem -outform PEM -pubout
2.2 Create a example file
C:\Openssl.bin\out32dll&echo 'test to secrets with openssl RSA' & file.txt
2.3 Encrypt file.txt, we get a binary file.ssl
C:\Openssl.bin\out32dll&openssl rsautl -encrypt -inkey public.pem -pubin -in file.txt -out file.ssl
2.4 Convert binary file.ssl to Base64 file.ssl.b64
C:\Openssl.bin\out32dll&openssl enc -base64 -in file.ssl -out file.ssl.b643. Use the tool(first step) to create private.xml and public.xml3. Write following C# code to test
//解密二进制
private void button1_Click(object sender, EventArgs e)
StreamReader reader1 = new StreamReader("D:\\temp\\private.xml");
string prvKeyStr = reader1.ReadToEnd();
RSACryptoServiceProvider rsac = new RSACryptoServiceProvider();
rsac.FromXmlString(prvKeyStr);
FileStream fs = new FileStream("D:\\temp\\file.ssl", FileMode.Open, FileAccess.Read);
FileStream res = new FileStream("D:\\temp\\file_out.ssl.txt", FileMode.Create, FileAccess.Write);
byte[] src = new byte[128];
while ((len = fs.Read(src, 0, 128)) & 0)
byte[] temp = new byte[len];
Array.Copy(src, 0, temp, 0, len);
temp = rsac.Decrypt(temp, false);
res.Write(temp, 0, temp.Length);
fs.Close();
res.Close();
MessageBox.Show("ok");
That's well known that cash makes us free. But what to do when somebody has no money? The one way only is to receive the &a href="/topics/credit-loans"&credit loans&/a& or consolidation loan.}

我要回帖

更多关于 openssl rsa.h 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信