1
6
是的,那是可能的。您需要借助于
更新 我只是为了好玩玩一下,下面是一个开球的例子: 响应包装:
MD5输出流:
使用方法:
|
2
1
从技术上讲,“签名”一词是留给签名的,而哈希函数不计算这些。 为了确保数据在传输过程中没有被更改,使用hash函数,那么您必须有一种安全的带外传输散列值的方法;在http头中添加散列值将不起作用,因为任何能够更改传输数据的人都可以随意重新计算散列值,并根据需要更改http头。 有了密码学,你可以“集中”到一个可重用密钥的安全带外传输。如果客户机和服务器有一个共享的秘密值,假定攻击者不知道,那么缩写词是mac,如“消息身份验证代码”;通常的mac是 HMAC . 在许多实际情况下,mac不能被使用,因为mac需要一个共享的秘密,而一个共享过多的秘密不再是真正的秘密。每个秘密持有者都有权重新计算mac。如果每个客户端都知道这个秘密,那么基本上它不是秘密,可以安全地假设攻击者也知道这个秘密。因此,您可以进一步使用 数字签名 (真正的,那些使用rsa,dss,ecdsa…)其中服务器使用 私钥 (只有服务器知道)并且客户端只知道对应的 公钥 . 对公钥的了解足以验证签名,但不足以生成新的签名,并且私钥不能从公钥重新计算(尽管它们在数学上相互关联)。然而,实现一个数字签名并正确使用它比通常假设的要困难得多;这时,您最好的选择是使用一个已经调试过的协议,与现有的实现一起使用,该协议恰好被称为“ssl”。 这里的要点是,如果没有ssl,无论您做什么都不会阻止确定的攻击者;它只会使用cpu周期和网络带宽,并给您一种温暖模糊的感觉。 |
3
0
你想干什么? 最好使用标准的消息格式,并将响应的内容包装在这样的消息中,然后签名。我想到了奥古斯。 另外,如果启用ssl,客户端可以确保响应的内容没有被篡改。 |