当前位置: 首页 > news >正文

.net电商网站开发设计微信公众平台官方网站登录

.net电商网站开发设计,微信公众平台官方网站登录,山东莱州市建设局网站,专业网专业网站建设数据完整性算法在shell及python中的实践 文章目录数据完整性算法在shell及python中的实践1 预备知识1.1 摘要算法1.2 报文(数据)完整性校验1.3 python byte类型字符串与普通字符串区别2 传统方法(散列函数)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中实践的两种方法(hashlib)
        • a. 两步法
        • 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):它将整个消息的密文作为认证符。

消息认证码:

  1. MAC(Message Authentication Code):消息认证码
  2. HMAC(Hash-based Message Authentication Code):基于哈希消息认证码。 基于Hash函数和密钥进行消息认证的方法,现在已经成为事实上的Internet安全标准

1.3 python byte类型字符串与普通字符串区别

>>> x = 'abcdef'
>>> bx = b'abcdef'
>>> .
>>> print(x)
>>> abcdef
>>>
>>> print(bx)
>>> b'abcdef'
>>> .
>>> print(x.encode('utf-8'))
>>> b'abcdef'

2 传统方法(散列函数)

以下实践全部使用 md5 算法进行

2.1 在shell中实践

^_^ kevin@TM1701-b38cbc23:~$ key='secret'
^_^ kevin@TM1701-b38cbc23:~$ data='abcdef'
^_^ kevin@TM1701-b38cbc23:~$ echo -n ${key}${data} |  md5sum
2ab627f179598ff1a2dab029cd1e38c5  -

2.2 在python中实践的两种方法(hashlib)

两种方法结果一样

a. 两步法

>>> key = b'secret'
>>> data = b'abcdef'
>>> md5x = hashlib.md5()
>>>
>>> md5x.update(key)
>>> print(md5x.hexdigest())
5ebe2294ecd0e0f08eab7690d2a6ee69
>>>
>>> md5x.update(data)
>>> print(md5x.hexdigest())
2ab627f179598ff1a2dab029cd1e38c5        #--- 看1

b. 一步法

>>> key_data = b'secretabcdef'
>>> md5ab = hashlib.md5()
>>>
>>> md5ab.update(key_data)
>>> print(md5ab.hexdigest())
2ab627f179598ff1a2dab029cd1e38c5        #--- 看1

3 主流方法(消息认证码)

3.1 在shell中实践

^_^ kevin@TM1701-b38cbc23:~$ key='secret'
^_^ kevin@TM1701-b38cbc23:~$ data='abcdef'
^_^ kevin@TM1701-b38cbc23:~$
O_O kevin@TM1701-b38cbc23:~$ echo -n ${data} | openssl dgst -hmac ${key} -md5 -hex
(stdin)= ed838766eed9b76a06dcb11fe3b87937        #--- 看2
^_^ kevin@TM1701-b38cbc23:~$ echo -n ${data} | openssl dgst -hmac ${key} -md5 -binary | base64
7YOHZu7Zt2oG3LEf47h5Nw==

3.2 在python中实践

>>> key = b'secret'
>>> data = b'abcdef'
>>>
>>> hmac_a_b = hmac.new(key, data, digestmod='md5')
>>>.
>>> hmac_a_b.hexdigest()
'ed838766eed9b76a06dcb11fe3b87937'
>>> print(hmac_a_b.hexdigest())
ed838766eed9b76a06dcb11fe3b87937        #--- 看2

4 最后

爱你

http://www.yayakq.cn/news/665231/

相关文章:

  • 官网做的好看的网站有哪些全国货运信息网配货
  • 网站建设创新点网络营销外包推广方式
  • 2016网站建设报价表中煤第三建设集团网站
  • 企业网站制作建设郑州网站推建设
  • 自助建站还是人工建站好自己怎么建个网站赚钱
  • 高职教育双高建设网站安卓系统
  • 县市区科普网站建设wordpress 大数据插件
  • 班级网站建设图片wordpress用什么采集
  • 双桥区网站制作dz论坛做视频网站教程
  • 西宁做网站公司电话网页开发工具所见即所得
  • 正规网站有哪些山东网站建设设计
  • 建设公司网站法律声明建筑工程网络计划图怎么做
  • django 开放api 做网站网络营销发展的趋势
  • 网优 是什么网站物业网站宣传册怎么做
  • 留言网站建设的报告常州市武进区城乡建设局网站
  • 做外贸必看的网站和论坛有哪些建立公司网站()
  • 快速网站推广工具ui设计基础
  • 做电影网站有什么好处和坏处公司网站建设方案建议
  • 网站描述修改辽宁鞍山网站建设公司
  • 线上推广话术通辽网站seo
  • 网站排名的英文怎么查找网站建设
  • django网站开发规范房价暴跌开始了
  • 网站可信认证多少钱推广seo公司
  • 做网站怎么回本烟台怎么做网站
  • 客户管理系统网站专业做app下载网站
  • 学院网站建设的特色家用电脑和宽带做网站
  • seo站群系统东营高端网站建设
  • h5网站案例网页升级访问每天都更新
  • 游戏网站开发公司网站备案名称
  • 制作图网老版宁波 seo排名公司