【发布时间】:2016-11-18 23:39:02
【问题描述】:
我正在为 Python 中的 RSA 签名编写基本代码。我正在按照算法"signing using PKCS#1v1.5" given in this link" 编写我的代码。
我遇到的问题是:
-
str(0xff)将打印为255如果要打印为ff怎么办。 -
m1=int(EB) 此处给出错误,即字符串无法转换为整数
另见代码中的 cmets。
import base64
import hashlib
import sys
n = 103923750583675917777452723084902275956322321347251369547198561741725160583083214244873468324950694356892627873520290850868687184677774313738345853731914172873201679734133922293223038318576487055717405740516986030705800665383388489578499651714083347835387576319528274700123545962228546255987411521556243948149
e = 65537
d = 17565091249452647225549595093023216057619090797007849313736034124434893324058360379487364521346397323516481360986683274410980788633530769996790469838235089550522885790106853124306578513977869050393094033637670437634572856174875038057195517551596745993052717984365235149738925687601660611790816608095661093629
m= '250887726'
h= hashlib.sha256 (m)
print h
t= '3031300d060960864801650304020105000420' + str(h)
print t
str1=str(00)
print str1
str2=str(01)
print str2
str3=str(0xff) # it prints as 255 what to do if want to print it as ff
print str3
EB=str1+str2+str3+str3+str3+str3+str3+str3+str3+str3+str3+str3+str3+str3+str3+str3+str3+str3+str3+str3+str3+str3+str3+str3+str3+str3+str3+str3+str3+str3+str3+str3+str3+str3+str3+str3+str3+str3+str3+str3+str3+str3+str3+str3+str3+str3+str3+str3+str3+str3+str3+str3+str3+str3+str3+str3+str3+str3+str3+str3+str3+str3+str3+str3+str3+str3+str3+str3+str3+str3+str3+str3+str3+str3+str3+str3+str3+str3+str3+str3+str3+str3+str3+str3+str3+str3+str3+str3+str3+str3+str3+str3+str3+str3+str3+str3+str3+str3+str3+str3+str3+str3+str3+str3+str3+str3+str3+str3+str3+str3+str3+str3+str3+str3+str3+str3+str3+str3+str3+str3+str3+str3+str3+str3+str3+str3+str3+str3+str3+str3+str3+str3+str3+str3+str3+str3+str3+str3+str3+str3+str3+str3+str3+str3+str3+str3+str3+str3+str3+str3+str3+str3+str3+str3+str3+str3+str3+str3+str3+str3+str3+str3+str3+str3+str3+str3+str3+str3+str3+str3+str3+str3+str3+str3+str3+str3+str3+str3+str3+str3+str3+str3+str3+str3+str3+str3+str3+str3+str3+str3+str3+str3+str3+str3+str3+str3+str3+str3+str3+str3+str3+str3+str1+str(t)
print 'EB:', EB
m1=int(EB) # it gives error here that string can't be converted to integer
s= pow (m1, d, n)
print 'signature: ',s
【问题讨论】:
-
我不确定您的问题是什么?
-
我想删除我的代码中的错误。我在代码中提到了错误出现的地方。
-
在行 m1=int (EB)。我想将字符串 EB 转换为整数,以便我可以对其进行签名。但是,每当我运行代码时,它都会为 int() 以 10 为基数提供错误无效文字。
-
最好将实际问题包含在问题的文本中;这使它更加清晰。我已经为你编辑了这个问题(还要注意我是如何删除了很多不需要这个问题的额外信息)。附言
//在 Python 中不用于表示 cmets。 -
感谢您的帮助。这是我第一次在这个论坛上发帖。我没有意识到我犯了这么多错误。
标签: python string rsa signature