Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/313.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 将测试消息转换为RSA中密文的整数_Python_Encryption_Encoding_Rsa_Converters - Fatal编程技术网

Python 将测试消息转换为RSA中密文的整数

Python 将测试消息转换为RSA中密文的整数,python,encryption,encoding,rsa,converters,Python,Encryption,Encoding,Rsa,Converters,函数ConvertToIntmessage应将文本消息转换为整数,并使用Encryptmessage、modulo、exponent返回整数密文。现在,我获取一条消息并将ASCII值转换为一个数组,然后以整数形式计算关联的RSA值,然后简单地返回数组,结果我搞错了 哪种方法可以将消息转换为整数并计算正确的RSA加密字符串 这是我的密码: def ConvertToInt(message): l = len(message) arra = [] i = 0 whil

函数ConvertToIntmessage应将文本消息转换为整数,并使用Encryptmessage、modulo、exponent返回整数密文。现在,我获取一条消息并将ASCII值转换为一个数组,然后以整数形式计算关联的RSA值,然后简单地返回数组,结果我搞错了

哪种方法可以将消息转换为整数并计算正确的RSA加密字符串

这是我的密码:

def ConvertToInt(message):
    l = len(message)
    arra = []
    i = 0
    while(i<l):
        j=ord(message[i])
        arra.append(j)
        i += 1
    return arra

def mod_ex(b, k, m):

    i = 1
    j = 0
    while(j<=k):
        b = (b*i) % m
        i = b
        j += 1
    return b
def PowMod(s,modulo,exponent):

    bin_e = bin(exponent)
    bin_e = bin_e [::-1]
    ln = len(bin_e)
    result = 1
    slen = len(s)
    for i in range(0,slen,+1):
        for j in range(0,ln-2,+1):
            if(bin_e[j]=='1'):
                result *= mod_ex(s[i],j,modulo)
        s[i] = result%modulo
        result = 1
    return s

def Encrypt(message, modulo, exponent):

  s = ConvertToInt(message)
  return PowMod(s, modulo, exponent)

x = Encrypt("Aa",473,17)
print(x)

我想这取决于你的申请。但是,由于我们经常使用加密进行通信,因此最好使用与通信系统更兼容的编码。例如,加密方案中使用的一种流行编码是对称还是非对称。

我发现这个错误不是正确的错误,您遇到了什么问题?ops!我应该更清楚一些。。在RSA加密的情况下,对文本消息进行编码以应用M^e mod n的正确方式是什么?加密后的整数输出是什么样子的。我迫切需要一个输入-输出的例子,这样做..如果我的输入是攻击,数组将返回285,19,19,213。。。。但如果我将其作为字符串2851919213返回。。。。那就不可能解密了。但如果我以285019019213的身份返回。。现在我可以解密n-1=472=3,取3乘3位进行解密,但是如果n太大,加密字符串中有很多0。那么正确的方法是什么呢