关于哈希和加密

哈希:将目标文本转换成为具有相同长度,不可逆的杂凑字符串(或称为信息摘要,其长度都是固定的);

加密:以某种特殊的算法,将原本信息数据进行改变,使得即使没有权限的人看到消息也不能从中得到任何有用信息,但是加密的信息是保证可逆的,即可加密必可解密(其长度与目标文本成正比)。

 

哈希算法与加密

     1,哈希算法:R= H(s) 是多对一映射,多个不同的s可以通过哈希算法H得到相同的R,所以就不存在一个逆映射,,使得一个R能得到唯一的S(不可逆);

     一个设计良好的hash算法很难从哈希结果中找到目标文本的碰撞,另外好的哈希算法对于目标的改变极其敏感。

    何为碰撞?对于哈希算法H,如果是s1!=s2,但是H(s1)=H(s2),则称s1与s2互为碰撞。

    2,加密算法:R=E(s,Ke)是一对一映射,一个s结合加密密钥Ke,仅能得到唯一的密文R,反之,一个R结合解密秘钥Kd也能得到唯一的s.

    一个设计良好的加密算法应该是一个“单向陷门函数”,单向陷门函数的特点:即使知道函数本身也很难有函数的值求得其对应的自变量,可是一旦知道了陷门,自变量就很容易计算出来。

简单的说,好的加密算法是很难从密文求得明文的,但如果一旦密钥被知道了,就很容易由密文求得明文。

    3,哈希与加密的应用

    哈希和加密在软件开发中最常见的应用是数据保护。为了实现数据保护,选择哈希or加密的基本原则:

    如果被保护的数据仅用做比较验证,以后不需要还原成明文,使用哈希;

    如果被保护的数据需要被还原成明文,使用加密;

 

 

你可能感兴趣的:(关于哈希和加密)