当我们使用cookie时,我们可以用cookie value | hash_value of the cookie
来设置cookie值.
当client不知道我们的hash 算法时, client 可以更改cookie value 但是却不能正确的得到写的hash值。
到了server端,我们就可以使用hash 函数再计算一次 cookie value, 看是否等于 client传过来的hash值,以此来判断cookie value是否被更改过了。
import hashlib
def hash_str(s):
return hashlib.sha256("our secret!"+s).hexdigest()
# or
def hash_str(s):
return hmac.new("secret", "ziho").hexdigest()
def make_secure_val(s):
return "%s | %s" % (s, hash_str(s))
def check_secure_val(h):
val = h.split('|')[0]
if h == make_secure_val(val):
return val
print(check_secure_val("zihowe | 016d473857f1029884ec80ede8ae486f33d2fdad9411d63cd2aab11097ee997c")
import hmac
hmac.new("secret", "ziho").hexdigest()
hashlib.md5("secret" + "ziho").hexdigest()
Note:
Secure: sha256 > sha1 > md5