Я пишу программу для шифрования файла с использованием алгоритма RSA в python без использования библиотеки Crypto.Я сгенерировал ключи, а e, n и d хранятся в файле .pem.Теперь в другом строгом, где происходит шифрование, я использую значения e, d и n, но каждый раз, когда я запускаю скрипт, появляется ошибка:
File "rsaencrypt.py", line 91, in <module>
main()
File "rsaencrypt.py", line 62, in main
encrypt = pow(content, e, n)
TypeError: unsupported operand type(s) for pow(): 'bytes','_io.TextIOWrapper', '_io.TextIOWrapper'
Вот как я открываю файлв сценарии шифрования и с помощью pow () для шифрования файлов:
n = open('nfile.pem', 'r')
c = open('cfile.pem', 'r')
d = open('dfile.pem', 'r'))
encrypt = pow(content, e, n)
Я искал в Интернете, как прочитать значение int из файла, но ничего не нашел.
Вот как я сохраняю значения в efile, dfile и nfile:
#saving the values of n, d and e for further use
efile = open('efile.pem', 'w')
efile.write('%d' %(int(e)))
efile.close()
dfile = open('dfile.pem', 'w')
dfile.write('%d' %(int(d)))
dfile.close()
nfile = open('nfile.pem', 'w')
nfile.write('%d' % (int(n)))
nfile.close()
значения хранятся так: 564651648965132684135419864 .............. 454
Теперь, когда я хочу зашифровать файлы, мне нужно прочитать целочисленные значения, записанные в efile, dfile и nfile, чтобы использовать значения в pow () в качестве аргументов.
Ждем предложений.Спасибо.