2015-02-11 32 views
2

你好,我试图运行这个简单的代码来生成私钥认可得到这个错误:“exportKey”功能不pycrypto-2.6.1(蟒蛇2.7.6)ubuntu14.04 LTS

Traceback (most recent call last): 
    File "erase-this.py", line 5, in <module> 
    f.write(RSA.exportKey('PEM')) 
AttributeError: 'module' object has no attribute 'exportKey' 

我里面/pycrypto-2.6.1/lib/Crypto/PublicKey检查,功能

def exportKey(self, format='PEM', passphrase=None, pkcs=1): 

存在内部RS A.py.

是否有人知道我为什么会得到错误:

AttributeError: 'module' object has no attribute 'exportKey'??? 

回答

2

exportKey()是关键,而不是一个模块功能的方法。所以你需要做

f.write(key.exportKey('PEM')) 

这是一个简短的演示(使用较小的关键尺寸)。

#!/usr/bin/env python 

from Crypto.PublicKey import RSA 
key = RSA.generate(1024) 
print key.exportKey('PEM') 

pub_key = key.publickey() 
print pub_key.exportKey('PEM') 

典型输出

-----BEGIN RSA PRIVATE KEY----- 
MIICWwIBAAKBgQDqYiWx1bwP0aF0TJhRBXzFv+WBPUKD965CbvoU/xiMj7Eu5crD 
36k6t44Po696gxVN+rGWUo2VKFVUsi1A3oqhkyFnF6JJxkt42w4sUVNd91PvBzxI 
ermBnciyhPjJY8pfWWSaGwZxdqSfBDieeCfAk7NKW8aRzfP178Mz4mCwYQIDAQAB 
AoGAMzhzqGNfD83uDK5YcwxR8h03mIC8sn5EFLyP5lrBEKauP+Nz5k5Qe0Z1wzEw 
PgO7eikY+hLcYgZIb5Pok86OWMnkeGMY7px+Ti67Y2q9w8euJ1hQV3pmAZNB9XaQ 
nuQrG3UNParBh/SaqnHGhtVoAKLX6HXV/sG6URJtQUBbaYECQQDtzl+DC0qi93ew 
lsEXRIjGMJjOJ7UphKHllHUN2gfxnTyEGN3QSd6Za/AURejQ8aGK9IByo3GONYSY 
/iy+j0Z5AkEA/FC8lhp8xVzk3qZtJ6lnKnRBMa+Wcy1wREcaUIJvIyKGdp6W3NJ5 
qJZmJOASx/FWyayIh61AEhvXUW/qMKPfKQJACabqsYLv0JWCwiQcSjl547FtQlDS 
RZEgkRTpe1pyIBhlsGbh+eZFpqx+3hPIU1K7X8x0ujJwFXmOnDcU0dc24QJAC+5Z 
bJOmEMMaw3iFMtns2fITXyEZcSrV4zSlhucUEEpCp3tKUPjW7eTmwZmi6bd8zh6N 
ejT0EaclYGF1ZoVpOQJAP0gyfT3wRcAeqt9io5FyYZvhijmnCpQ+N7jci1Bcri/G 
94r8T4jhw9ezl8bjrtytaMiQdNnM2vn/Iqbrd/Cl3Q== 
-----END RSA PRIVATE KEY----- 
-----BEGIN PUBLIC KEY----- 
MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDqYiWx1bwP0aF0TJhRBXzFv+WB 
PUKD965CbvoU/xiMj7Eu5crD36k6t44Po696gxVN+rGWUo2VKFVUsi1A3oqhkyFn 
F6JJxkt42w4sUVNd91PvBzxIermBnciyhPjJY8pfWWSaGwZxdqSfBDieeCfAk7NK 
W8aRzfP178Mz4mCwYQIDAQAB 
-----END PUBLIC KEY----- 
+0

它的工作原理!谢谢 – jjf 2015-02-12 02:14:20