@
geelaw 签名和 hash,加密并没有任何关系。
签名,只是为了保证这个“东西” 是由本人编写的。或者本人工作的,因此进行签名。
例如指纹,盖章,亲笔签名,都可以在大多数情况下来证明是由本人签发的,但是实际上,"指纹,盖章,亲笔签名"这些都存在可以伪造签名。
在数字化时代,如何解决签名伪造的问题,成为了一个需求。
在 非对称加密,例如 RSA 或者 ECC 加密算法的出现,才更好的将这种方式实现起来。
public key 可以将 private key 加密的内容给解密出来,在 private key 不泄露的情况下可以保证安全。
例如我可以将这信息进行加密
>>>>>>>
rsa(
采用的加密算法 aes ,
采用的算法的算法的密钥 123456
)
=======
aes(二进制文件)
<<<<<<<<
将这段数据放在服务器上,那么这个签名就成立了。 但是带来第二问题就是,文件太大,没有这么多的空间存放。
于是就有涉及到另外一个算法,散列算法,也就是 hash 算法。例如常见的 sha-256 或者 sha-512
>>>>>>>
rsa(
采用的加密算法 aes ,
采用的算法的算法的密钥 123456
)
=======
aes(二进制文件 sha 算法)
<<<<<<<<
这种签名,可以参照一下 GPG