Python中字符串传入RSA签名时带双引号与不带的差异及自动加引号需求
RSA加密时自动为字符串添加双引号的解决方案
问题本质
你这里的核心差异是:函数返回的result内容是good book(没有外层双引号),而你手动传入的实际是包含双引号的字符串"good book"——两者虽然都是str类型,但实际内容不同,所以RSASSA-PKCS1-v1_5算法的加密/签名结果自然不一样。
实现方法
直接在传入加密函数前,给result前后加上双引号即可,两种简洁的写法:
1. 基础字符串拼接
quoted_result = '"' + result + '"' x = rsa_encrypt(quoted_result)
2. f-string格式化(Python 3.6及以上版本推荐)
quoted_result = f'"{result}"' x = rsa_encrypt(quoted_result)
这样处理后,quoted_result的内容就变成了"good book",和你手动传入带双引号的字符串效果完全一致,加密结果也会匹配。
验证代码
拿你的场景测试:
result = "good book" quoted_result = f'"{result}"' x = rsa_encrypt(quoted_result) print(x) # 输出将与手动传入'"good book"'的结果相同
内容的提问来源于stack exchange,提问作者Navrang
相关产品推荐
相关产品推荐

