使用OPENSSL做简单的加密解密

系统:window xp
工具:openssl(window版的,openssl有链接)

路径:
openssl=>C:\OpenSSL-Win32
例子=>C:\ca\demo

场景:
A加密消息文件data.txt,把文件给B,B解密

1.生成密钥
a的私钥
C:\OpenSSL-Win32\bin>openssl genrsa -des3 -out C:/ca/demo/privatea.key 1024
a的公钥
C:\OpenSSL-Win32\bin>openssl rsa -pubout -in C:/ca/demo/privatea.key -out C:/ca/demo/publica.key
b的私钥
C:\OpenSSL-Win32\bin>openssl genrsa -des3 -out C:/ca/demo/privateb.key 1024
b的公钥
C:\OpenSSL-Win32\bin>openssl rsa -pubout -in C:/ca/demo/privateb.key -out C:/ca/demo/publicb.key
2.加密文件
C:\OpenSSL-Win32\bin>openssl rsautl -encrypt -pubin -inkey C:/ca/demo/publicb.key -in C:/ca/demo/data.txt -out C:/ca/demo/edata.txt
3.消息摘要
C:\OpenSSL-Win32\bin>openssl dgst -sha1 -out C:/ca/demo/md.txt C:/ca/demo/data.txt
4.签名
C:\OpenSSL-Win32\bin>openssl rsautl -sign -inkey C:/ca/demo/privatea.key -in C:/ca/demo/md.txt -out C:/ca/demo/signature.sgn


-----------------  一个漫长的文件传输过程   ------------------------


5.解密文件
C:\OpenSSL-Win32\bin>openssl rsautl -decrypt -inkey C:/ca/demo/privateb.key -in C:/ca/demo/edata.txt -out C:/ca/demo/data_1.txt
6.新文件的消息摘要
C:\OpenSSL-Win32\bin>openssl dgst -sha1 -out C:/ca/demo/md_1.txt C:/ca/demo/data_1.txt
7.解密数字签名
C:\OpenSSL-Win32\bin>openssl rsautl -verify -pubin -inkey C:/ca/demo/publica.key -in C:/ca/demo/signature.sgn -out C:/ca/demo/md0.txt

一般说来,传统数字签名的过程中,主要先采用单向散列算法(如前面章节所说的MD5算法),对原文信息进行加密压缩形成消息摘要,原文的任何变化都会使消息摘要发生改变;然后,对消息摘要用非对称加密算法(如前文所述的RSA算法)进行加密。在验证阶段,收方将信息用单向加密算法计算出消息摘要,然后将收到的消息摘要进行解密,比较两个消息摘要是否相同,来判断信息是否可靠。

猜你喜欢

转载自demonreborn-h.iteye.com/blog/975147