VB.NET仍是比较经常使用的,因而我研究了一下VB.NET散列函数,在这里拿出来和你们分享一下,但愿对你们有用。算法
加密将防止数据被查看或修改,并在本来不安全的信道上提供安全的通讯信道,它达到如下目的:
◆保密性:防止用户的标识或数据被读取。
◆数据完整性:防止数据被更改。
◆身份验证:确保数据发自特定的一方。安全
VB.NET散列函数ide
VB.NET散列函数H也称哈希函数或杂凑函数等,是典型的多到一的函数,其输入为一可变长x(能够足够的长),输出一固定长的串h(通常为 128位、160位,比输入的串短),该串h被称为输入x的Hash值(或称消息摘要Message Digest、指纹、密码校验和或消息完整性校验),计做h=H(x)。为防止传输和存储的消息被有意或无心地篡改,采用VB.NET散列函数对消息进行运算生成消息摘要,附在消息以后发出或与信息一块儿存储,它在报文防伪中具备重要应用。http://open.189works.com/product/product.htm函数
消息摘要采用一种单向散列算法将一个消息进行换算。在消息摘要算法中,文件数据做为单向散列运算的输入,这个输入经过HASH函数产生一个散列值。若是改动了文件,散列值就会相应地改变,接收者即能检测到这种改动过的痕迹。从理论上来说,***者不可能制造一个替用的消息来产生一个彻底相同的消息摘要。Hash函数可用于数字签名、消息的完整性检测、消息的起源认证检测等。加密
VB.NET散列函数是安全的是指它具备:
◆一致性:相同的输入产生相同的输出。
◆随机性:消息摘要外观是随机的,以防被猜出源消息。
◆惟一性:几乎不可能找到两个消息产生相同的消息摘要。
◆单向性:即若是给出输出,则很难肯定出输入消息。spa
Hash函数H通常知足如下几个基本要求:htm
(1)输入x能够为任意长度;输出数据串长度固定;get
(2)正向计算容易,即给定任何x,容易算出H(x);反向计算困难,即给出一Hash值h,很难找出一特定输入x,使h=H(x);it
(3)抗冲突性(抗碰撞性),包括两个含义,一是给出一消息x,找出一消息y使H(x)=H(y)是计算上不可行的(弱抗冲突),二是找出任意两条消息x、y,使H(x)=H(y)也是计算上不可行的(强抗冲突)。class
私钥加密
私钥加密又称为对称加密,由于同一密钥既用于加密又用于解密。私钥加密算法很是快(与公钥算法相比),特别适用于对较大的数据流执行加密转换。
公钥加密(PKCS)和数字签名
公钥加密使用一个必须对未经受权的用户保密的私钥和一个能够对任何人公开的公钥。用公钥加密的数据只能用私钥解密,而用私钥签名的数据只能用公钥验证。公钥能够被任何人使用;该密钥用于加密要发送到私钥持有者的数据。两个密钥对于通讯会话都是惟一的。公钥加密算法也称为不对称算法,缘由是须要用一个密钥加密数据而须要用另外一个密钥来解密数据。