做软装有什么网站找图片,网站建设具备知识技能,什么是企业文化它包括哪些内容,做创意礼品的网站数据完整性算法在shell及python中的实践 文章目录数据完整性算法在shell及python中的实践1 预备知识1.1 摘要算法1.2 报文#xff08;数据#xff09;完整性校验1.3 python byte类型字符串与普通字符串区别2 传统方法#xff08;散列函数#xff09;2.1 在shell中实践2.2 在…数据完整性算法在shell及python中的实践 文章目录数据完整性算法在shell及python中的实践1 预备知识1.1 摘要算法1.2 报文数据完整性校验1.3 python byte类型字符串与普通字符串区别2 传统方法散列函数2.1 在shell中实践2.2 在python中实践的两种方法hashliba. 两步法b. 一步法3 主流方法消息认证码3.1 在shell中实践3.2 在python中实践4 最后1 预备知识
1.1 摘要算法 md5 sha1 sha256 sha512 sha1024 1.2 报文数据完整性校验
在Internet上为了确保接收方所接收到的报文数据的完整性人们采用消息认证来实现主要方式有以下3种方式消息认证码、散列函数和消息加密。 消息认证码MAC它是一个需要密钥的算法可以对可变长度的消息进行认证把输出的结果作为认证符。 散列HASH它是将任意长度的消息映射成为定长的散列值以该散列值作为认证符。Hash一般翻译做散列、杂凑或音译为哈希 消息加密encryption它将整个消息的密文作为认证符。 消息认证码 MACMessage Authentication Code消息认证码HMACHash-based Message Authentication Code基于哈希消息认证码。 基于Hash函数和密钥进行消息认证的方法现在已经成为事实上的Internet安全标准 1.3 python byte类型字符串与普通字符串区别 x abcdefbx babcdef.print(x)abcdefprint(bx)babcdef.print(x.encode(utf-8))babcdef2 传统方法散列函数
以下实践全部使用 md5 算法进行
2.1 在shell中实践
^_^ kevinTM1701-b38cbc23:~$ keysecret
^_^ kevinTM1701-b38cbc23:~$ dataabcdef
^_^ kevinTM1701-b38cbc23:~$ echo -n ${key}${data} | md5sum
2ab627f179598ff1a2dab029cd1e38c5 -2.2 在python中实践的两种方法hashlib
两种方法结果一样
a. 两步法 key bsecretdata babcdefmd5x hashlib.md5()md5x.update(key)print(md5x.hexdigest())
5ebe2294ecd0e0f08eab7690d2a6ee69md5x.update(data)print(md5x.hexdigest())
2ab627f179598ff1a2dab029cd1e38c5 #--- 看1b. 一步法 key_data bsecretabcdefmd5ab hashlib.md5()md5ab.update(key_data)print(md5ab.hexdigest())
2ab627f179598ff1a2dab029cd1e38c5 #--- 看13 主流方法消息认证码
3.1 在shell中实践
^_^ kevinTM1701-b38cbc23:~$ keysecret
^_^ kevinTM1701-b38cbc23:~$ dataabcdef
^_^ kevinTM1701-b38cbc23:~$
O_O kevinTM1701-b38cbc23:~$ echo -n ${data} | openssl dgst -hmac ${key} -md5 -hex
(stdin) ed838766eed9b76a06dcb11fe3b87937 #--- 看2
^_^ kevinTM1701-b38cbc23:~$ echo -n ${data} | openssl dgst -hmac ${key} -md5 -binary | base64
7YOHZu7Zt2oG3LEf47h5Nw3.2 在python中实践 key bsecretdata babcdefhmac_a_b hmac.new(key, data, digestmodmd5)
.hmac_a_b.hexdigest()
ed838766eed9b76a06dcb11fe3b87937print(hmac_a_b.hexdigest())
ed838766eed9b76a06dcb11fe3b87937 #--- 看24 最后
爱你