openssl加密机制

如梦烟雨
彩蝶飘起风吹过凌乱了思绪 , 
琴声悠扬线连天飘向远沟渠 , 
心田阑珊化伤时俯首弄秋菊 。
谁人的残句 , 掀起了柳絮 。
散开在风中 , 咫尺天涯不送 。
拈一抹音律 , 弹拨忘魂曲 。
起舞弄清影 , 影动乐不停 。
你的笑摇曳在风中 , 
是我永远清醒不了的梦 。
望向远处的山峦 , 在雾中弥漫 , 
如羽化凡尘在梦幻中低语 , 
洒落百花雨 。
对称加密
建立在双方互相信任的基础上 , 密钥只有一种 , 只有在拥有密钥的前提下才能解密数据 。没有密钥 , 别人无法看到解密后的数据 。
非对称加密
先手动生成一对密钥 , 公钥和私钥 , 公钥可以被任何人拥有 , 私钥一般只有自己保存 , 公钥发布出去 , 自己用私钥加密后的数据文件被获取了公钥的另一方获取 , 就可以解密数据文件 。一般用于 , 身份验证 , 让自己授权的一些人查看自己用私钥机密的数据 , 或者让对方用自己的公钥加密后的文件自己用私钥可以查看 。
单向加密
验证数据的完整性 , 一般用于数字签名 。
对数据单向加密 , 生成特征码 , 用来验证数据的完整性 。数据发生微笑的变化 , 就会引发雪崩效应 , 从而能够确认数据是否完整 。
目前的数字签名是建立在公共密钥体制基础上 , 它是公用密钥加密技术的另一类应用 。它的主要方式是 , 报文的发送方从报文文本中生成一个128位的散列值(或报文摘要) 。发送方用自己的私人密钥对这个散列值进行加密来形成发送方的数字签名 。然后 , 这个数字签名将作为报文的附件和报文一起发送给报文的接收方 。报文的接收方首先从接收到的原始报文中计算出128位的散列值(或报文摘要) , 接着再用发送方的公用密钥来对报文附加的数字签名进行解密 。如果两个散列值相同、那么接收方就能确认该数字签名是发送方的 。通过数字签名能够实现对原始报文的鉴别 。
加密过程的理解
自己生成一对密钥 , 将公钥发不出去 , 对方要对我发送邮件 , 用我发布的公钥对文件加密 , 他在加密的时候要想实现非对称加密 , 就不能用单向加密的手段 , 这是由加密的命令决定的 , enc实现非对称加密 , 必须有密钥才能对文件加密 , dgst不需要密钥 , 对方可以在对文件非对称加密后 , 再进行单向加密 , 当他发送邮件的时候 , 将单向加密生成的特征码和邮件的原件一同发送过来 , 我可以对原件单向加密 , 提取特征码后 , 与发送方发送过来的特征码做比对 , 来验证原件的完整性 。然后用私钥对原件解密 。
整个过程需要注意的是 , 单向加密只是来实现验证原件的完整性用的 , 而非对称加密是身份验证 , 验证通过 , 你就可以打开文件 。
密钥和密码的区别
密钥都是随机生成的 , 是解锁文件的直接工具 , 密码在解锁文件的时候 , 背后其实是很复杂的 。我们在给文件设置密码的时候 , 系统利用加密算法 , 将密码转换成密钥的形式保存 , 我们利用密码解锁 , 同样需要加密算法将密码转化成密钥 , 与系统中的密钥匹配 。