Python使用apply或map计算NTLM哈希值

标签 python pandas apply

我正在使用密码并想要计算它们的 NTLM 哈希值,因此我测试了 hashlib 和 binascii 来对密码进行哈希处理,并且它有效。请参阅以下内容:

 import hashlib,binascii

 hash = hashlib.new('md4', "thisisastrongpassword".encode('utf-16le')).digest()
 password = "thisisastrongpassword"
 print "Password before hash: ",password
 print "Hashed password: ",binascii.hexlify(hash)

输出:

 Password before hash:  thisisastrongpassword
 Hashed password:  912ed96fab781cce35f3b700cff7123c

我希望在存储在具有一列的数据框中的大型数据集上尝试这一点。我不需要打印语句,我所寻找的只是哈希值。有没有好的方法可以使用map或应用在以下df上?

df1
 column_1
 Jimbob@@$
 Jimbob@@$
 Jimbob@@%
 Jimbob@@%
 Jimbob@@&
 Jimbob@@*
 Jimbob@@@
 Jimbob@@@
 JimbobJimmy
 JimbobJimmy
 Jimbob_005
 Jimbob_005
 Jimbob_0053
 Jimbob_0053
 Jimbob_0055

最佳答案

您可以定义一个函数来对密码进行哈希处理并使用 applymap:

def hasher(p):
    hash_ = hashlib.new('md4', p.encode('utf-16le')).digest()
    return binascii.hexlify(hash_)

df.column_1.apply(hasher)
# or 
df.column_1.map(hasher)

测试:

>>> hasher('thisisastrongpassword')
# b'912ed96fab781cce35f3b700cff7123c'

>>> df.column_1.apply(hasher)
0     b'2b1349acddf4ad6802f18d3a6abaa84f'
1     b'2b1349acddf4ad6802f18d3a6abaa84f'
2     b'c36b0a1847b70be9c6746fcd5de3a916'
3     b'c36b0a1847b70be9c6746fcd5de3a916'
4     b'5cb8d96c0f2ed5c7f758379c875cdf79'
5     b'c11549aa7b217a141b51b74eaed0fbdf'
6     b'3590ebf6c9c1380ab8c9648bed6ce2c8'
7     b'3590ebf6c9c1380ab8c9648bed6ce2c8'
8     b'5e6de5fad20db51b594197d6b0213136'
9     b'5e6de5fad20db51b594197d6b0213136'
10    b'719b5aa4e400c02ad401f324262214c2'
11    b'719b5aa4e400c02ad401f324262214c2'
12    b'd6524a455013f156082a278d14b311d4'
13    b'd6524a455013f156082a278d14b311d4'
14    b'98cb6c0caa0bc159d8a10b7387c06caa'
Name: column_1, dtype: object

关于Python使用apply或map计算NTLM哈希值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53659988/

相关文章:

python - Pandas 根据其他列的值创建新列/逐行应用多列的函数

r - 将 lines() 应用于数据框/矩阵的列;每条线都有不同的颜色

R 使用行和列的公式创建矩阵

python - 根据第二个数组过滤numpy数组中的行

python-3.x - 根据元素的排名对数据框进行排序并创建新列

python - 使用 .loc 时的 SettingWithCopyWarning

python-3.x - 创建两级多索引

python - 为什么这个 Jinja 宏渲染文本而不是 HTML?

python - python函数中的最大递归深度错误

python - python 中的 Nltk 法语分词器无法正常工作