早上好,全部。使用熊貓將唯一號碼轉換爲md5哈希
我想將我的社會安全號碼轉換爲md5哈希十六進制數字。結果應該是每個社會安全號碼的唯一md5哈希十六進制數字。
我的數據格式如下:
ob = onboard[['regions','lname','ssno']][:10]
ob
regions lname ssno
0 Northern Region (R1) Banderas 123456789
1 Northern Region (R1) Garfield 234567891
2 Northern Region (R1) Pacino 345678912
3 Northern Region (R1) Baldwin 456789123
4 Northern Region (R1) Brody 567891234
5 Northern Region (R1) Johnson 6789123456
6 Northern Region (R1) Guinness 789
7 Northern Region (R1) Hopkins 891234567
8 Northern Region (R1) Paul 891234567
9 Northern Region (R1) Arkin 987654321
我試着使用hashlib
下面的代碼:
import hashlib
ob['md5'] = hashlib.md5(['ssno'])
這給我的錯誤,它必須是一個字符串不是列表。所以,我試過如下:
ob['md5'] = hashlib.md5('ssno').hexdigest()
regions lname ssno md5
0 Northern Region (R1) Banderas 123456789 a1b3ec3d8a026d392ad551701ad7881e
1 Northern Region (R1) Garfield 234567891 a1b3ec3d8a026d392ad551701ad7881e
2 Northern Region (R1) Pacino 345678912 a1b3ec3d8a026d392ad551701ad7881e
3 Northern Region (R1) Baldwin 456789123 a1b3ec3d8a026d392ad551701ad7881e
4 Northern Region (R1) Brody 567891234 a1b3ec3d8a026d392ad551701ad7881e
5 Northern Region (R1) Johnson 678912345 a1b3ec3d8a026d392ad551701ad7881e
6 Northern Region (R1) Johnson 789123456 a1b3ec3d8a026d392ad551701ad7881e
7 Northern Region (R1) Guiness 891234567 a1b3ec3d8a026d392ad551701ad7881e
8 Northern Region (R1) Hopkins 912345678 a1b3ec3d8a026d392ad551701ad7881e
9 Northern Region (R1) Paul 159753456 a1b3ec3d8a026d392ad551701ad7881e
這是非常接近我所需要的,但不顧一切的十六進制數出來相同的,如果社會安全號碼是不同的或沒有。我正在嘗試爲每個社會安全號碼獲取具有唯一十六進制數字的十六進制數字。
有什麼建議嗎?
不要湊社會安全號碼,並認爲它提供*任何*某種混淆。社會保障號碼空間很小,對於任何人來說,無害的哈希都是微不足道的。 如果你關心你正在哈希的個人信息的隱私,你至少應該使用hmac模塊,而不是直接使用哈希。 – gps 2015-02-24 01:27:53
非常感謝您花時間回覆此評論!非常有價值!我不知道哈希可以被扭轉。我將研究hmac模塊。再次謝謝你! – david 2015-02-24 13:37:14