我试图运行这个简单的代码来检索SSL证书:
import ssl, socket
#print ssl.get_server_certificate(('www.google.com', 443))
cert=ssl.get_server_certificate(('www.google.com', 443))
# OpenSSL
x509 = OpenSSL.crypto.load_certificate(OpenSSL.crypto.FILETYPE_PEM, cert)
x509.get_subject().get_components()
Run Code Online (Sandbox Code Playgroud)
但我得到错误说:
Traceback (most recent call last):
File "C:\Users\e\Desktop\Python\ssl\test.py", line 6, in <module>
x509 = OpenSSL.crypto.load_certificate(OpenSSL.crypto.FILETYPE_PEM, cert)
NameError: name 'OpenSSL' is not defined
Run Code Online (Sandbox Code Playgroud)
我知道我必须导入OpenSSL.但是我不知道怎么做?从哪里获得OpenSSL?我从https://pypi.python.org/pypi/pyOpenSSL下载了一个名为pyOpenSSL的模块, 其中包含两个文件夹:pyOpenSSL-0.15.1.dist-info和OpenSSL.当我尝试添加导入OpenSSL或导入pyOpenSSL时,我收到错误.你能解释清楚,如何导入这些库或模块?他们应该放在哪里?如果不在我的代码文件的同一目录中?如何在导入语法中编写路径?请帮忙.
编辑:
当试图添加from OpenSSL import SSL代码时,我得到:
C:\Users\e\Desktop\Python\ssl>test.py
Traceback (most recent call last):
File "C:\Users\e\Desktop\Python\ssl\test.py", line 2, in <module>
from OpenSSL import SSL
File "C:\Users\e\Desktop\Python\ssl\OpenSSL\__init__.py", line 8, in <module>
from OpenSSL import rand, crypto, SSL
File "C:\Users\e\Desktop\Python\ssl\OpenSSL\rand.py", line …Run Code Online (Sandbox Code Playgroud) Python 新手,无法让它工作。我需要生成一个 openSSL 进程。这是我所拥有的:
from subprocess import call
cmd = "openssl aes-128-cbc -d -in ciphertext -base64 -pass pass:test123"
decrypted = call(cmd)
print (decrypted)
Run Code Online (Sandbox Code Playgroud)
这甚至无法编译。我明白了TypeError: 'function' object is not subscriptable
谁能告诉我该怎么做?谢谢。
顺便说一句,当我只需在终端中输入 cmd 字符串时,它就可以正常工作。
编辑:我将行更改decrypted = call[cmd]为decrypted = call(cmd). 当我这样做时,我收到以下一系列错误:
Traceback (most recent call last):
..., line 14, in <module>
plaintext = call(cmd)
File "/Library/Frameworks/Python.framework/Versions/3.3/lib/python3.3/subprocess.py", line 523, in call
with Popen(*popenargs, **kwargs) as p:
File "/Library/Frameworks/Python.framework/Versions/3.3/lib/python3.3/subprocess.py", line 817, in __init__
restore_signals, start_new_session)
File "/Library/Frameworks/Python.framework/Versions/3.3/lib/python3.3/subprocess.py", line 1441, …Run Code Online (Sandbox Code Playgroud)