python中MD5加密返回值相关问题

问题:目的是将数据库中主键和元组属性和密钥关联生成的一个字符串S,将这个S使用MD5散列一个唯一的ID。但是在实际操作当中遇到了一些问题,在python3中MD5返回的是一个16进制的字符串,想要把16进制字符串转换10进制数值。

第一步:

import pymysql
import hashlib
import binascii
data = "this is a md5 test."
str_md5 = hashlib.md5("data".encode(encoding='UTF-8')).hexdigest()
print('MD5加密后为 :' + str_md5)

得到结果是:

MD5加密后为 :8d777f385d3dfec8815d20f7496026dc


第二步:

此时得到的是一个16进制的字符串,接下来的工作是将这个字符床转化为10进制数:

string = 'You are the best! Fighting!!!'
string1 = b'You are the best! Fighting!!!'

string2 = bytes(string, encoding='utf-8')
string3 = string.encode('utf-8')

string_int1 = int(binascii.hexlify(string1), 16)
string_int2 = int(binascii.b2a_hex(string2), 16)
print(string_int1)
print(string_int2)

这里的测试字符串使用的是string,使用的测试字节流是string1,pythone3要把字符串转换成字节流,然后才能用进制转化函数,直接得到下面结果:

2411173100793619677233155818483794740066199961996582223365080564703521
2411173100793619677233155818483794740066199961996582223365080564703521

第三步:

可以对数据进行分组,嵌入水印

猜你喜欢

转载自blog.csdn.net/qq_38234785/article/details/100541310