验证 RSA 私钥的密码
Verify the passphrase for RSA private key
如何在 python 中验证 RSA 私钥(PEM 格式)的密码?
我想暴力破解,用我自己的字典。
我在 MacOS 中通过此命令创建了密钥:
ssh-keygen -t rsa -C "your_email@example.com"
私人 RSA 密钥详细信息:
强度:2048位
算法:RSA
尺寸:2048
指纹
SHA1: 80 09 90 30 96 8E 24 FC A9 4B 46 E1 BE B7 23 2D EC 16 2C EB
SHA256: 67 93 E2 0A 9F E7 C9 7E A9 66 AD 05 52 FD 19 8B 3E CB 8A 59 9F 51 F0 A6 65 6F 6F 9A 9D 7B 35 B9
密码是:'testing'
正如@Hannu 建议我 运行 此代码但它拒绝正确和错误的密码
from Crypto.PublicKey import RSA
kf = open("testing", "r")
kt = kf.read()
kf.close()
dlist = ["foo", "bar", "testing"]
for d in dlist:
try:
nk = RSA.importKey(kt, passphrase=d)
print "success", d
break
except ValueError:
print "nosuccess", d
pass
我建议看一下加密中的 RSA 模块
https://www.dlitz.net/software/pycrypto/api/current/Crypto.PublicKey.RSA-module.html
以下内容将是一个很好的起点
>>> from Crypto.PrivateKey import RSA
>>>
>>> key = RSA.generate(2048)
>>> f = open('mykey.pem','w')
>>> f.write(RSA.exportKey('PEM'))
>>> f.close()
...
>>> f = open('mykey.pem','r')
>>> key = RSA.importKey(f.read())
使用 Paramiko 而不是 pycrypto 解决了这个问题:
import paramiko
from paramiko import rsakey
kf = open("sshk", "r")
dlist = ["foo", "bar", "foobar", "klunssi", "xyzzy"]
for d in dlist:
kf.seek(0)
try:
nk = rsakey.RSAKey.from_private_key(kf, password=d)
print "success", d
except paramiko.ssh_exception.SSHException:
print "fail", d
这至少对我有用。希望这可以帮助。
汉奴
如何在 python 中验证 RSA 私钥(PEM 格式)的密码? 我想暴力破解,用我自己的字典。
我在 MacOS 中通过此命令创建了密钥:
ssh-keygen -t rsa -C "your_email@example.com"
私人 RSA 密钥详细信息:
强度:2048位
算法:RSA
尺寸:2048
指纹
SHA1: 80 09 90 30 96 8E 24 FC A9 4B 46 E1 BE B7 23 2D EC 16 2C EB
SHA256: 67 93 E2 0A 9F E7 C9 7E A9 66 AD 05 52 FD 19 8B 3E CB 8A 59 9F 51 F0 A6 65 6F 6F 9A 9D 7B 35 B9
密码是:'testing'
正如@Hannu 建议我 运行 此代码但它拒绝正确和错误的密码
from Crypto.PublicKey import RSA
kf = open("testing", "r")
kt = kf.read()
kf.close()
dlist = ["foo", "bar", "testing"]
for d in dlist:
try:
nk = RSA.importKey(kt, passphrase=d)
print "success", d
break
except ValueError:
print "nosuccess", d
pass
我建议看一下加密中的 RSA 模块
https://www.dlitz.net/software/pycrypto/api/current/Crypto.PublicKey.RSA-module.html
以下内容将是一个很好的起点
>>> from Crypto.PrivateKey import RSA
>>>
>>> key = RSA.generate(2048)
>>> f = open('mykey.pem','w')
>>> f.write(RSA.exportKey('PEM'))
>>> f.close()
...
>>> f = open('mykey.pem','r')
>>> key = RSA.importKey(f.read())
使用 Paramiko 而不是 pycrypto 解决了这个问题:
import paramiko
from paramiko import rsakey
kf = open("sshk", "r")
dlist = ["foo", "bar", "foobar", "klunssi", "xyzzy"]
for d in dlist:
kf.seek(0)
try:
nk = rsakey.RSAKey.from_private_key(kf, password=d)
print "success", d
except paramiko.ssh_exception.SSHException:
print "fail", d
这至少对我有用。希望这可以帮助。
汉奴