openssl加密机制( 二 )


利用对称加密或者非对称加密的时候 , 会提示输入密码 , 然后程序会通过算法将密码转换成密钥 , 若是对称加密算法 , 就直接用密钥给文件加密 , 若是非对称加密算法 , 就从密钥中提取公钥再给文件加密 。
单向加密中 , 可以理解为没有密钥和密码 , 给文件加密后 , 文件内容转化成特征码 , 通过与再次对文件单向加密生成的特征码比对可以用来验证文件的完整性 。
我想 , 对于一些登录密码而言 , 系统会将密码转换成密钥的形式 , 若是对称加密 , 直接与系统密钥文件中存在的密钥比对 , 若吻合就会验证成功;若是非对称加密 , 则从密钥中提私钥 , 用私钥解密 。
而若是一些直接使用密钥来通过的关卡 , 例如在网络上下载的一些软件 , 经常会提示我们输入密钥 , 这些程序中 , 省略了那些算法 , 直接使用密钥解密 。
也就是说 , 密钥才是解密软件的直接钥匙 , 密码是需要被算法转化成密钥才可以使用的 。
利用密钥解密不需要用到算法 , 利用密码解密就必须通过算法才能实现了 。
公钥和私钥
私钥可以随机生成 , 
----开源安全套阶层协议
为网络通信提供安全及数据完整性的一种安全协议 , 囊括了主要的密码算法、常用的密钥和证书封装管理功能以及SSL协议 , 并提供了丰富的应用程序供测试或其它目的使用 。
SSL是Layer(安全套接层协议)的缩写 , 可以在上提供秘密性传输 。
:
: 加密、解密
: 实现ssl
httpd-- WEB服务器中有模块 , 依赖 , 实现ssl 。
:

openssl加密机制

文章插图
enc ---------实现对称加密和非对称加密 , 子命令加密
-d 解密
-e 加密 (加密)
-des3 算法
-in 指定文件
-out 加密后的文件
dgst -----------实现单向加密---雪崩效应
-c 显示为两个组成部分
-d显示debug信息
-hex 显示十六进制信息
-hmac
-mac alg 显示信息认证码 , 实现信息完整性
-md5 算法
-------------- 可以实现利用公钥加密 , 利用私钥解密
-in
指定输入文件名 。缺省为标准输入 。
-out
指定输入文件名 ,  缺省为标准输出 。
-inkey file
指定我们的私有密钥文件 ,  格式必须是 RSA 私有密钥文件 。
-pubin
指定我们的公共密钥文件 。说真的我还真不知道 RSA 的公共密钥文件有什么用 , 一般公共密钥都是放在证书里面的 。
-
指定我们的证书文件了 。
-sign
给输入的数据签名 。需要我们的私有密钥文件 。
-
对输入的数据进行验证 。
-
用我们的公共密钥对输入的数据进行加密 。
-
用 RSA 的私有密钥对输入的数据进行解密 。
-pkcs, -oaep, -ssl, -raw
采用的填充模式 ,  上述四个值分别代表: PKCS#1.5( 缺省值 ), PKCS#1 OAEP, SSLv2 里面特定的填充模式 , 或者不填充 。如果要签名 , 只有 -pkcs 和 -raw 可以使用 .
-
用十六进制输出数据 。
-
对输出的数据进行 ASN1 分析 。看看指令吧 。该指令一般和 - 一起用的时候威力大 。
本指令加密数据的时候只能加密少量数据 , 要加密大量数据 , 估计要调 API. 我也没试过写 RSA 加密解密的程序来玩 。