OpenSSL就好象是一个无名英雄在默默的为我们服务。
OpenSSL应该算是实现了一些加密算法的小工具软件而已了,但是,却是目前https加密方式事实上的标准。
因为我们最近在做SSL的加密传输来绕过80端口的不安全性,所以开始研究OpenSSL了。
发现国内对这个小工具的研究还挺少的,有一个论坛。
应该是目前中文环境中讨论OpenSSL最全面的一个论坛了。
但是,感觉更新太慢了,而且很多东西都是为了解决问题而问的,这样也无助于IT人能够详细了解和运用这个工具,如果不用好这个工具,那又怎么能够了解OpenSSL为我们带来了什么呢?
为什么我们需要支付将近数万美元一年去外国的公司购买CA根证书呢?为什么我们就不能自己签发根证书呢?
真希望有一天,我们国内也有公司能够签发自己的根证书,让别人来购买。
虽然有很长的路要走,但是,理解这一个技术,让更多的人能够使用这个技术,应该就是开始。
OpenSSL涉及到很多相关的解密,加密常识,标准。因此,我们在这里开辟了OpenSSL板块,借以普及相关知识。
授人以鱼,不如授人以渔。
我想只要不局限在找人解决问题的基础上,大家都能深入点,那自然总有一天我们能够理解掉这个小工具,并且使用真正由中国人签发的CA根证书。
hex
2
MD5 的的摘要算法已经不安全了。
MD5摘要算法因其设计缺陷,不再被视为安全的哈希函数。其核心不安全因素在于碰撞攻击(Collision Attacks),即攻击者能找到两个不同输入却产生相同MD5值,使得数据签名/完整性校验失效。
此外,MD5处理速度快,易受到字典攻击和彩虹表攻击,在短时间内能反查出常用密码,不应直接用于密码存储。
摘要算法是一种能产生特殊输出格式的算法,这种算法的特点是:无论用户输入什么长度的原始数据,经过计算后输出的密文都是固定长度的,这种算法的原理是根据一定的运算规则对原数据进行某种形式的提取,这种提取就是摘要,被摘要的数据内容与原数据有密切联系,只要原数据稍有改变,输出的“摘要”便完全不同,因此,基于这种原理的算法便能对数据完整性提供较为健全的保障。
但是,由于输出的密文是提取原数据经过处理的定长值,所以它已经不能还原为原数据,即消息摘要算法是不可逆的,理论上无法通过反向运算取得原数据内容,因此它通常只能被用来做数据完整性验证。
如今常用的“消息摘要”算法经历了多年验证发展而保留下来的算法已经不多,这其中包括MD2、MD4、MD5、SHA、SHA-1/256/383/512等。
常用的摘要算法主要有MD5和SHA1。
D5的输出结果为16字节,sha1的输出结果为20字节。