当我们开发一款 App 的时候,App 需要跟后台服务进行
通信获取或者提交数据。如果我们没有完善的安全机制则很
容易被别用心的人伪造请求而篡改数据。
所以我们需要使用某种安全机制来保证请求的合法。现在最
常用的办法是给每个 http 请求添加一个签名,服务端来验
证签名的合法性,如果签名合法则执行响应的操作,如果签
名非法则直接拒绝请求。
签名算法
签名算法一般都使用 Hash 散列算法,常用的有 MD5,SHA
系列算法。这些算法可以根据不同的输入,计算出不同的结
果,而且碰撞的概率很低。
签名算法跟加密算法不是一回事。很多同学都会说使用 MD5
加密一下,其实这是错误的。签名算法不能恢复原来的数据,
因为它本身并不包含原来数据的信息。
而加密方法不同,加密方法是可以根据加密结果重新推算出
原来的数据的。
HMAC SHA 作为一种更加安全的签名算法,使用一个 Key 来影
响签名的结果。这样同样的输入配合不同的 Key 可以得出不
同的签名,更加安全。
public static string HmacSHA256(string
secretKey,string plain)