数据加密就是通过一定的算法将原来的数据变成新的数据,将这个新的数据发送给对方时,只有通密钥才能解密
加密有3种方式
1.单向加密(md5,sha1)
2.对称加密(DES,3DES,AES,blowfish)
3.非对称加密(rsa,dsa)
单向加密:是不可逆的,单向加密有md5和sha1两种
  md5:无论输入的数据是多长,输出为定长,128位
  sha1:安全的算法,定长为160位
对称加密:就是我们平时用的,通信双方用密钥是可以解密的。
非对称加密:有私钥和公钥,它们必须是成双出现的,公钥加密的数据用私钥可以解密
私钥加密的数据用公钥可以解密。
常用的非对称加密算法有rsa,dsa,但dsa只能做签名用,不作加密
而rsa即可以做加密用,也可以做签名用。所谓的公钥,是可以公开的,任何人都可以拥有
的,而私钥,顾名思义,就是自己的,不能给别人用的。
这三种加密方式有什么用处呢?
假设张三和要李四通信。
我们在互联网上通信时,要保证以下3种的。
1.数据要加密(用到对称加密):将数据加密,别人获取到也没用
2.身份要验证(用到非对称加密):为了不被人冒名顶替,如李四收到的信要确认确实是张三
 发的,而不是被某些人冒名顶替了。
3.数据要完整(用到单向加密):保证发送的数据中间没有被人改动过。
我们知道,比如,张三要和李四通信,为了不让通信内容被别人非法获取,就采用对称加密的方式将数据加密传送过去,密钥则只有张三和李四拥有。这就是对称加密的用处
如果张三和李四在通信的时候,有人冒名顶替了张三,以张三的身份和李四通信,那么,李四就惨了,如何才能保证就是张三发的呢?而不是别人,这就用到了非对称加密了。
如张三把自己的公钥发送给李四了,在给李四通信的时候,张三则用他自己的私钥把通信内容加密了,我们知道,公钥加密的数据用私钥可以解密,私钥加密的数据用公钥可以解密。如果李四能用张三的公钥解密这段数据,就表明通信的对方的确是张三而不是别人,因为,张三的私钥只有张三自己有,当然,李四也把自己的公钥给了张三,这样,通信双方可以到到身份验证的功能,就可以保证通信时不被别人冒名顶替了。所以,非对称加密就起到了身份验证的功能。
如果保证张三给李四发送的数据没有被人改动过呢?
我们知道,每个人都有唯一的指纹,每个人的指纹都不是同的。
类似的,系统中的每个文件都相当于我们每个人,相应的,每个文件也都有“指纹”,这个“指纹”就是文件的特征码,用来标识唯一的文件。
张三给李四发送数据时,把相应的文件特征码也发送给李四,那么,李四收到后,提取文件的特征码,如果和张三发送过来的特征码一样,则表明,张三发送的文件没有被人改动过。
这样,单向加密就起到这样的作用。
加密解密的原理简单的来说就是这样,后面的实现方法,会在以后的文章中讲解。