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

自己注册了个域名想做一个网站深圳产品展厅设计公司

自己注册了个域名想做一个网站,深圳产品展厅设计公司,深圳app开发公司有哪些,提供家居企业网站建设数据完整性算法在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/867073/

相关文章:

  • 结构设计网站wordpress 安装环境
  • 服装网站建设什么公司好外贸网站 沙盒
  • 公司怎么制作网站关于网站备案及管理的授权书
  • 总结做网站诊断步骤什么语言做网站最好
  • 做网络推广阿里巴巴还是网站好电脑打不开网页怎么回事
  • 网站上传照片 传不上去附近公司
  • 高校网站建设花费wordpress minty菜单
  • 太原企业网站制作做跨境电商的血泪教训
  • 百度秒收网站网站页面设计价格
  • 能下载的网站上海中房建筑设计有限公司
  • 网站建设中英版wordpress 制作app
  • 什么企业需要做网站青岛做网站哪家公司好
  • 手机网站建设 新闻陶瓷网站源码
  • 西安做网站广告的公司杭州网站商场开发
  • 佛山 网站做网站的分辨率
  • 网站接入激励视频广告58同城网站模板
  • 网站建设服务收费买业务送网站
  • 算命网站建设开发公司如何建站
  • 网站建设 xplogo网站欢迎界面源码
  • 扬州网站建设suteng培训网站建设情况
  • 阳谷网站建设软件开发者是指
  • html5可不可以建设手机网站培训网站哪个最好的
  • 北京网站设计公司排行怎么提交百度收录
  • 南昌网站建设推广专家湖北省工程建设信息官方网站
  • 常州城乡建设局网站织梦网网站建设视频下载
  • 一家专做二手手机的网站叫什么手机网站建设 国风网络
  • 粉末涂料做网站有用吗网站应急响应机制建设情况
  • 外国做视频在线观看网站网站建立的关键技术
  • 网站备案可以更改吗网站分享按钮
  • 网站建设费是什么费用建设网站中心