一、加密和签名的区别是什么

数字签名和验证:发送报文时,发送方用一个hash算法从报文中产生固定长度的报文摘要,然后利用自己的私钥对这个摘要进行加密,这个过程就叫签名。这个加密后的摘要作为报文的数字签名和报文一起发送给接收方,接收方用发送方的公钥解密被加密的摘要(报文附加的数字签名)得到结果A,然后用于发送方一样的hash算法从接收到的原始报文中算出报文摘要B。最后,把A和B作比较。如果相同,那么接收方就能确认该数字签名是发送方的。加密和解密:发送方利用接收方的公钥对要发送的明文进行加密,接受方利用自己的私钥进行解密,其中公钥和私钥匙相对的,任何一个作为公钥,则另一个就为私钥。

2、数字签名的功能:

a)对签名者进行身份认证;

b)保证信息的完整性(在交易过程中,没有被篡改)

c)防止交易中的抵赖发生(签名者无法否认信息是由自己发出的)

加密的功能:

a)重点在于“数据的安全性”,可以防止数据被监听攻击。

二、为什么数字签名以后再加密而不是先加密再进行数字签名

信息发送者使用一单向散列函数(HASH函数)对信息生成信息摘要。

信息发送者使用自己的私钥签名信息摘要。

信息发送者把信息本身和已签名的信息摘要一起发送出去。

信息接收者通过使用与信息发送者使用的同一个单向散列函数(HASH函数)对接收的信息本身生成新的信息摘要,再使用信息发送者的公钥对信息摘要进行验证,以确认信息发送者的身份和信息是否被修改过。

特点

每个人都有一对“钥匙”(数字身份),其中一个只有她/他本人知道(密钥),另一个公开的(公钥)。签名的时候用密钥,验证签名的时候用公钥。又因为任何人都可以落款声称她/他就是你,因此公钥必须向接受者信任的人(身份认证机构)来注册。

注册后身份认证机构给你发一数字证书。对文件签名后,你把此数字证书连同文件及签名一起发给接受者,接受者向身份认证机构求证是否真地是用你的密钥签发的文件。

三、RSA为什么先签名后加密

签名是用私钥来计算的。所以签名不能随便签。对明文签名可以理解。对密文签名,你并不知道密文的内容,一旦对密文签名,就可能出现这样一种情况。有人想破译一段发给你的密文,他把这段密文伪装成需要你来签名的内容,你签名后就是明文了。

四、加密和签名的区别

加密是对信息的加密,比如A给B发消息则会使用b的公钥加密,发送后只能使用B的私钥才能解密。

签名,是给信息加个身份,是由谁发送的。一般用私钥生成。A给B发送,A使用自己的私钥签名,B收到后用A的公钥解密,来确认是不是A发的。

对称加密:是加密解密使用相同的密钥。

优使用简单快捷高效。

缺加密强度不高,密钥分发困难

DES采用替换和移位,密钥56位,每次对64位数据块加密。

3DES使用两个密钥K1,k2,

加密时k1加密,k2解密,k1加密

解密时k1解密,k2加密,k1解密

rc-5:rsa数据安全公司很多产品使用了rc-5

idea:密钥是128位每次对64位数据块加密。

非对称加密:一个公钥一个私钥

优:解决了加密强度不高,密钥分发困难的问题

缺:加密速度慢

rsa:512位密钥,计算量大,难破解。

ecc:椭圆体制曲线密码

信息摘要:一份长文件的数字指纹,可以用于创建数字签名

md5 128位散列值

sha  160位散列值

md5+salt

简单的md5密码加密,黑客可以通过密码md5比较,可以轻松试出密码。

如果加上salt,密码加密之前拼接上salt,之后再散列。

黑客用自己密码和salt值试,就很难找到密码。