我将 3 个字母转换为它们的 ASCII 二进制符号,然后将第一个字母增加 16 位,第二个字母增加 8 位,最后一个字母保持原位,这样当配置 24 位流时,前 8 位places 代表第一个字母,接下来的 8 个代表中间字母,最后一个代表最后一个字母。这是我的代码:
# create a block for the word 'Ozy'
bk1 = (ord('O')<<16) + (ord('z')<<8) + (ord('y'))
# Now take off the encryption for the block
cbk1 = ((chr(bk1>>16)) + (chr(bk1>>8)) + (chr(bk1&0xFF)))
# output of cbk1 is: 'O\u4f7ay'
所以这就是问题所在,第一个字母被解密为O
,最后一个字母也是正确的y
,但由于某种原因它不会为z
. 怎么了?