RSA加密代码运行报NoneType与int取模TypeError错误求排查
问题定位结果
报错核心是gcd函数执行a % b操作时,第一个参数a(也就是传入的E变量)为None类型,无法和整数做取模运算。
具体根因
你调用generatenextPrime函数给公钥参数E赋值时,该函数没有写return语句返回计算得到的素数结果,函数执行完默认返回None,赋值给E后传入gcd函数就触发了类型错误。
修复方案
- 检查修改
generatenextPrime函数,在函数末尾添加return语句,把生成的素数结果返回 - 可额外增加校验逻辑,赋值
E之后先判断是否为整数类型,避免后续逻辑出错
# 示例修复后的generatenextPrime函数结构 def generatenextPrime(num): # 原有素数生成逻辑保留 while True: num += 1 if is_prime(num): # 此处为你原有素数判断逻辑 return num # 必须添加返回语句
内容的提问来源于stack exchange,提问作者Vaibhav Tyagi
相关产品推荐
相关产品推荐

