python移位运算

本文记录了在实现SHA-1密码算法过程中遇到的Python移位运算问题。SHA-1的消息填充步骤中,涉及到了左移和右移运算。左移运算相当于数字乘以2的幂次,而右移则相当于除以2的幂次,但需注意运算符的优先级。在Python中,乘以2**n与左移n位的效果相同,但运算顺序可能导致结果差异。
摘要由CSDN通过智能技术生成

title: python移位运算
date: 2018-10-12 19:55:22
tags: #标签
- PYTHON


python移位运算

密码算法程序设计实践选的SHA-1。
在写的过程中遇到一丢丢关于python移位的问题,记录一下。

SHA-1其中第一步需要填充消息。简单阐述一下sha1填充消息的过程:

如输入消息“123”,先转成ascii码——313233,消息长度为3*8=24。
即
00110001 00110010 00110011
然后填充一个1占1bit,再填充447-24bit个0。
10000000...00000000 
最后64bit加上消息长度24的二进制0001 1000

二进制相当于是:
00110001 00110010 00110011 10000000...00000000 00011000
16进制表示
31323380 00000000...0018

python部分代码块:

        M = input()
        # 1byte=8bit,L为M字符串长度
        L = 8 * len(M)
        m=0
        for ch in M:#遍历字符串M
            m = m * (2 
  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值