python 文件加密_文件加密和解密的Python脚本

我在查看一个处于活动状态的python食谱时发现了以下代码。我提出了以下4个问题。非常感谢您的指导和解释。在

Q::我无法确切地理解为什么在“k=long”行的第一个位置从用户那里获取“key random seed”(系统argv[2] )”?尤其是因为,这个值'k'似乎没有在代码的后面部分使用?在

第二,在加密和解密代码部分,“bytearray[i]语句的确切含义是什么-随机.randint(0255)%256英寸?这是否意味着每个字符的unicode值在加密过程中被移位或移位,而在解密时又被重新移回其原始值?在

第三,“bytearray=map(ord,f1.read())”是否计算文件中每个字符的unicode点值?在

最后,既然加密和解密都使用随机数,那么什么因素可以保证加密文件的解密是准确的?种子值“k”与此有关吗?在

下面是我正在研究的代码。在

非常感谢您的指导,提前谢谢# encdec.py

import sys

import random

if len(sys.argv) != 5:

print "Usage: encdec.py e/d longintkey [path]filename1 [path]filename2"

sys.exit()

k = long(sys.argv[2]) # key

random.seed(k)

f1 = open( sys.argv[3], "rb")

bytearr = map (ord, f1.read () )

f2 = open( sys.argv[4], "wb" )

if sys.argv[1] == "e": # encryption

for i in range(len(bytearr)):

byt = (bytearr[i] + random.randint(0, 255)) % 256

f2.write(chr(byt))

if sys.argv[1] == "d": # decryption

for i in range(len(bytearr)):

byt = ((bytearr[i] - random.randint(0, 255)) + 256 ) % 256

f2.write(chr(byt))

f1.close()

f2.close()

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值