2015-03-13 82 views
-1

我正在处理一个数据集,该数据集具有我想用作唯一标识的用户社会安全号(没有破折号),但想要散列(md5)字符串以便保护用户的身份。这是该数据集的样本:Python中的哈希字符串

id  |  date  |  sale_id 
543875600 2014-03-22  a4395 

想输出看起来像这样或类似:

id        |  date  |  sale_id 
762be25b5c6eb20dd6c791840c01aa33 2014-03-22  a4395 

我想用Python作为我目前使用python与解决数据汇总许多文件的目录内,因此这将是额外的代码,我将包括以下代码:

import glob 
files = glob.glob('*.csv') 
output="combined.csv" 

with open(output, 'w') as result: 
     for thefile in files: 
      f = [open(thefile).read()] 
      for line in f: 
       result.write(line) 
    message = 'file created' 
    print (message) 
+4

哈希代码:https://docs.python.org/2/library/hashlib.html – 2015-03-13 11:07:31

+1

也许最好是使用一些散列函数来保护用户的身份。 – Zlopez 2015-03-13 11:07:50

+0

你的问题是什么? – mkrieger1 2015-03-13 13:45:39

回答

0

技术首先接听......

反向字符串 - 可读方式:

>>> s = "abcde" 
>>> "".join(reversed(s)) 
'edcba' 

反向字符串 - 少可读的方式:

>>> s = "abcde" 
>>> s[::-1] 
'edcba' 

“争夺” 的字符串:

>>> import random 
>>> l = list(s) 
>>> random.shuffle(l) 
>>> "".join(l) 
'dacbe' 

现在克里斯竞技场和Zlopez是正确的:既不是有效的“保护”,你真的想散列你的ID。

0
>>> import hashlib 
>>> id = "000000000" 
>>> my_hash = hashlib.sha224(id).hexdigest() 
>>> my_hash 
'c34c462b2fb1982287dc9df575c03669b308301dbc3be6d62dd83536' 

你当然可以MD5如果你真的需要它,或在图书馆any other hash function