燕哥带你学算法 2012-02-03
哈希函数:MD5,SHA 是没有密钥的,相当与指纹的概念,因此也是不可逆的;
md5是128位的,SHA有不同的算法,有128,256等位。。。如SHA-256,SHA-384
然后就是Base64,这更加不属于加密算法的范围了,它只是将byte[]数组进行了转换,为什么要转换呢?就是因为很多加密后的密文后者一些特殊的byte[]数组需要显示出来,或者需要进行传递(电子邮件),但是直接转换就会导致很多不可显示的字符,会丢失一些信息,因此就转换位Base64编码,这些都是可显示的字符。所以转换后,长度会增加。它是可逆的。
再就是3DES,DES这才是加密算法,因此也是可逆的,加解密需要密钥,也就是你说的key
最后是 RSA ,这是公钥密码,也就是加密和解密密钥不同,也是可逆的。Base64编码转换在.NET中都直接可以实现的。就是用Convert类。
RSA的密钥很长,速度慢,不适合加密大量数据,一般用于传递密钥;
哈希函数相当与个指纹的概念,就是不同的字符串,对象的哈希值不一样,但是不可逆。。