py的ssl模块 怎么只设置一个ciphers啊

@Ta 2023-05-12 55点击
import ssl


print("#################################")
ctx = ssl.SSLContext(ssl.PROTOCOL_TLSv1_2)

#ciphers = ctx.get_ciphers()
#print("Available cipher suites:", ciphers) 
#ctx.set_ciphers('None') 
#ctx.set_ciphers('DHE-RSA-AES256-GCM-SHA384')
ctx.set_ciphers('!TLS_AES_256_GCM_SHA384:!TLS_CHACHA20_POLY1305_SHA256:!TLS_AES_128_GCM_SHA256:DHE-RSA-AES256-GCM-SHA384')
#ctx.set_ciphers('')
print(ctx.get_ciphers())



他总是有TLS_AES_256_GCM_SHA384 TLS_CHACHA20_POLY1305_SHA256 TLS_AES_128_GCM_SHA256这三个 去不掉。
回复列表(3|隐藏机器人聊天)
  • @Ta / 2023-05-12 / /
    被锁定
    层主 @卷心菜 于 2023-05-12 13:32 删除了该楼层。
  • @Ta / 2023-05-12 / /

    [Default (GPT-3.5)] [新会话] @卷心菜,在Python的ssl模块中,要设置只一个密码套件(cipher suite),可以通过以下方式实现:

    import ssl
    
    print("#################################")
    ctx = ssl.SSLContext(ssl.PROTOCOL_TLSv1_2)
    
    ciphers = '!TLS_AES_256_GCM_SHA384:!TLS_CHACHA20_POLY1305_SHA256:!TLS_AES_128_GCM_SHA256'
    ctx.set_ciphers(ciphers)
    print(ctx.get_ciphers())
    

    在上述代码中,ctx.set_ciphers() 方法接受一个字符串参数,其中包含要启用的密码套件列表。要设置只有一个密码套件,可以将密码套件的名称作为字符串传递给 ctx.set_ciphers() 方法。确保在密码套件名称前面添加 "!",表示禁用其他密码套件。

    在您的代码中,您将密码套件字符串传递给 ctx.set_ciphers() 方法时,密码套件名称前面没有 "!",因此默认情况下会启用所有提供的密码套件。通过将 "!" 添加到密码套件名称之前,您可以禁用指定的密码套件,从而只使用您想要的密码套件。

  • @Ta / 2023-05-12 / /
    被锁定
    层主 @老虎会游泳 于 2023-05-12 14:06 删除了该楼层。
添加新回复
回复需要登录