我试图重新运行大约2年前编写的代码,但现在无法正常工作。我正在使用python 3.7.1。 导致问题的代码段如下
<ButtonCarte onPress={() => this.props.navigation.navigate('Carte') } />
这在ssl握手期间导致异常,并且仅显示[错误0]。完整的追溯如下-
import ssl
import mechanize
import operator
try:
_create_unverified_https_context = ssl._create_unverified_context
except AttributeError:
# Legacy Python that doesn't verify HTTPS certificates by default
pass
else:
# Handle target environment that doesn't support HTTPS verification
ssl._create_default_https_context = _create_unverified_https_context
ssl._DEFAULT_CIPHERS = ('DES-CBC3-SHA')
myBrowser = mechanize.Browser()
myBrowser.set_handle_robots(False)
myBrowser.set_handle_refresh(False)
myBrowser.open("https://uwp.puchd.ac.in/common/viewmarks.aspx")
能否请您解释一下实际存在的问题以及如何解决?
注意-请注意,Visit this link我正在打开并检查,它可能使用了过时的密码,并且在进行操作之前始终显示警告。
答案 0 :(得分:0)
虽然还不清楚您将哪个版本的OpenSSL与Python一起使用,但我猜测它是OpenSSL 1.1.1,因为该版本随Anaconda Python 3.7一起提供。此版本不再支持DES-CBC3-SHA,即该密码被认为是弱密码且未在其中编译。因此,ssl._DEFAULT_CIPHERS = ('DES-CBC3-SHA')
实质上将支持的密码列表设置为none,这使得TLS握手失败。
如果您需要此弱密码,则需要返回到旧版本的OpenSSL或重新编译OpenSSL和Python,并明确支持此弱密码。