我有一个正在开发的 Chrome 扩展程序,可以将数据发布到远程服务器。我希望在发送数据之前对其进行加密。我的服务器没有 HTTPS,所以我必须通过纯 HTTP 发送它。
我目前在 Javascript 的扩展中使用 RSA 4096 位公钥加密,SHA1 对数据进行哈希处理,并通过 Ajax 发布请求发送哈希和加密数据。
这种可接受的加密是通过 HTTP 发送的吗?
我有一个正在开发的 Chrome 扩展程序,可以将数据发布到远程服务器。我希望在发送数据之前对其进行加密。我的服务器没有 HTTPS,所以我必须通过纯 HTTP 发送它。
我目前在 Javascript 的扩展中使用 RSA 4096 位公钥加密,SHA1 对数据进行哈希处理,并通过 Ajax 发布请求发送哈希和加密数据。
这种可接受的加密是通过 HTTP 发送的吗?
客户:散列你的信息。将哈希附加到您的消息中。加密您的消息 + 哈希。发送您的加密消息 + 哈希。
服务器:解密您的消息 + 哈希。拆分消息和哈希。散列消息。确保服务器端的哈希值与客户端的哈希值相同。如果这些不匹配,那么要么有一些比特接通了电线,要么有人改变了你的信息。是的,RSA 4096 位公钥加密已经绰绰有余了。
好吧,维基百科告诉的是:
...并且 2048 位密钥在 2030 年之前就足够了...
如果在 2030 年之后需要安全性,则应使用 3072 位的 RSA 密钥长度
所以我猜使用 4k 位加密有点偏执