我编写了python代码,我需要文件的md5 / sha1摘要以供进一步使用。
import hashlib
md5_file = hashlib.md5(my_file_path).digest()
将生成此类摘要。
'si\x155u\xba\xd2\xf9N^\xabq\xc87\xffh'
现在这是16位md5的十六进制表示。 接下来我做的是把它转换成列表
md5hexstring = list(md5_file)
o/p = ['s', 'i', '\x15', '5', 'u', '\xba', '\xd2', '\xf9', 'N', '^', '\xab', 'q', '\xc8', '7', '\xff', 'h']
现在我想使用具有这样逻辑的自定义编码对此进行编码。
pseudo code of logic I want to use:
char_val >> 4 then
if char_val < 6 : new_val = char_val + '3' else : new_val = 'x' + char_val - 7
encoded_val = encoded_val + new_val
again char_val & 0x0f then
if char_val < 6 : new_val = char_val + '3' else : new_val = 'x' + char_val - 7
encoded_val = encoded_val + new_val
添加字符3的ascii值,例如。 '3'=&gt; 51 + char_val =
现在这在C ++中通常很容易做到但是在python中我尝试了ord()
和chr()
但是这个限制为255并且校验和计算通常具有更多的值。所以我不确定如何在python中这样做。
这里有两个问题:
我将每个字符处理的摘要转换为列表的方式是否正确? (如果不是那么正确的方法)
如何根据我上面提到的pesudocode进行自定义编码。
PS:
我不想使用python的encode()
api进行base64编码,因为我需要上面提到的自定义编码,所以请不要建议除非我可以将此逻辑添加到此API中。
尝试引用this但没有运气