使用 python 脚本将字符或整数转换为 md5 哈希
converting character or integer to md5 hash using python script
我使用 SQL 将社会安全号码转换为 MD5 哈希。我想知道 python/pandas 中是否有可以做同样事情的模块或函数。
我的 sql 脚本是:
CREATE OR REPLACE FUNCTION MD5HASH(STR IN VARCHAR2) RETURN VARCHAR2 IS
V_CHECKSUM VARCHAR2(32);
BEGIN
V_CHECKSUM := LOWER(RAWTOHEX(UTL_RAW.CAST_TO_RAW(SYS.DBMS_OBFUSCATION_TOOLKIT.MD5(INPUT_ST RING => STR))));
RETURN V_CHECKSUM;
EXCEPTION
WHEN NO_DATA_FOUND THEN
NULL;
WHEN OTHERS THEN
RAISE;
END MD5HASH;
SELECT HRPRO.MD5HASH('555555555') FROM DUAL
谢谢。
我很抱歉,现在我回头看了我最初的问题,它很混乱。
我有一个包含以下标题的数据框:
df[['ssno','regions','occ_ser','ethnicity','veteran','age','age_category']][:10]
其中 ssno 是个人信息,我想将其转换为 md5 哈希值,然后在数据框中创建一个新列。
谢谢...抱歉造成混淆。
现在我必须将我的文件发送到 Oracle,然后将 ssn 转换为哈希,然后导出回来,以便我可以在 Pandas 中继续使用它。我想去掉这一步。
使用标准 hashlib 模块:
import hashlib
hash = hashlib.md5()
hash.update('555555555')
print hash.hexdigest()
输出
3665a76e271ada5a75368b99f774e404
如 timkofu 的评论中所述,您也可以更简单地执行此操作,使用
print hashlib.md5('555555555').hexdigest()
当您想分阶段生成校验和时,.update()
方法很有用。请参阅 hashlib documentation (or the Python 3 version) 了解更多详情。
带有 md5
的 hashlib 可能是您的兴趣。
import hashlib
hashlib.md5("Nobody inspects the spammish repetition").hexdigest()
输出:
bb649c83dd1ea5c9d9dec9a18df0ffe9
此模块中始终存在的哈希算法的构造函数是 md5(), sha1(), sha224(), sha256(), sha384(), and sha512()
。
如果你想要更浓缩的结果,那么你可以尝试sha
系列
sha224
的输出:
'a4337bc45a8fc544c03f52dc550cd6e1e87021bc896588bd79e901e2'
更多详情:hashlib
我使用 SQL 将社会安全号码转换为 MD5 哈希。我想知道 python/pandas 中是否有可以做同样事情的模块或函数。
我的 sql 脚本是:
CREATE OR REPLACE FUNCTION MD5HASH(STR IN VARCHAR2) RETURN VARCHAR2 IS
V_CHECKSUM VARCHAR2(32);
BEGIN
V_CHECKSUM := LOWER(RAWTOHEX(UTL_RAW.CAST_TO_RAW(SYS.DBMS_OBFUSCATION_TOOLKIT.MD5(INPUT_ST RING => STR))));
RETURN V_CHECKSUM;
EXCEPTION
WHEN NO_DATA_FOUND THEN
NULL;
WHEN OTHERS THEN
RAISE;
END MD5HASH;
SELECT HRPRO.MD5HASH('555555555') FROM DUAL
谢谢。
我很抱歉,现在我回头看了我最初的问题,它很混乱。
我有一个包含以下标题的数据框:
df[['ssno','regions','occ_ser','ethnicity','veteran','age','age_category']][:10]
其中 ssno 是个人信息,我想将其转换为 md5 哈希值,然后在数据框中创建一个新列。
谢谢...抱歉造成混淆。
现在我必须将我的文件发送到 Oracle,然后将 ssn 转换为哈希,然后导出回来,以便我可以在 Pandas 中继续使用它。我想去掉这一步。
使用标准 hashlib 模块:
import hashlib
hash = hashlib.md5()
hash.update('555555555')
print hash.hexdigest()
输出
3665a76e271ada5a75368b99f774e404
如 timkofu 的评论中所述,您也可以更简单地执行此操作,使用
print hashlib.md5('555555555').hexdigest()
当您想分阶段生成校验和时,.update()
方法很有用。请参阅 hashlib documentation (or the Python 3 version) 了解更多详情。
带有 md5
的 hashlib 可能是您的兴趣。
import hashlib
hashlib.md5("Nobody inspects the spammish repetition").hexdigest()
输出:
bb649c83dd1ea5c9d9dec9a18df0ffe9
此模块中始终存在的哈希算法的构造函数是 md5(), sha1(), sha224(), sha256(), sha384(), and sha512()
。
如果你想要更浓缩的结果,那么你可以尝试sha
系列
sha224
的输出:
'a4337bc45a8fc544c03f52dc550cd6e1e87021bc896588bd79e901e2'
更多详情:hashlib