【发布时间】:2015-01-28 11:33:41
【问题描述】:
我使用 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 中使用它。我想消除这一步。
【问题讨论】:
-
你试过谷歌搜索
python md5吗?我的第二个结果是:docs.python.org/2/library/hashlib.html -
这不就是
hashlib.md5(ssn).hexdigest()吗?虽然 sha256 会是更好的选择。 -
@timkofu:我认为 david 想使用MD5 来兼容他现有的SQL 代码。但我可能完全错了。 :) 在这种情况下,如果他需要它提供的额外安全性,SHA256 将是一个更好的选择。
-
@timkofu:感谢您的回复。我不想使用 SQL 代码。这是我想消除的流程中的一个额外步骤。
-
@david:如果您的问题已解决,请选择正确答案