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

我正在通过其中一个处于活动状态的python配方,并找到了以下代码。 我想出了以下4个问题。 非常感谢任何指导和解释。

Q ::我无法确切地弄清楚为什么在“k = long(sys.argv [2])”行的第一个位置从用户那里获取“密钥随机种子”? 特别是因为,这个值'k'似乎没有在代码的后半部分使用?

其次,在加密和解密代码的部分,语句“bytearray [i] -random.randint(0,255)%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()

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值