「已注销」 2022-08-01 11:10 采纳率: 83.3%
浏览 77
已结题

python运行代码问题

代码:

 
import os
import hashlib
 
 
print("-------------------------------------软件加密工具-------------------------------------")
print("关注博主不迷路!!!\nhttps://jiangongfang.blog.csdn.net/\nhttps://blog.51cto.com/u_15449377")
print("使用告知:\n【加密后的文件后缀会多出DATA,是为了方便软件检测,请勿乱改加密后的后缀名】")
print("【保存文件默认路径 为加密文件或解密文件的当前目录,不是软件的当前目录】")
print("【要加密或解密的文件命名不可有“./\”字符,否则会出错】")
print("-------------------------------------软件加密工具-------------------------------------\n")
name_1 = input('输入要加密或解密的文件名含后缀:')
#判断是否存在该文件
if os.path.exists(name_1) == True:
    pass
else:
    print('请检查是否路径错误或不存在该文件!!!!')
    os.system('pause')
    exit()
 
password = input('请输入要加密或解密的密码:')
data = input('输入要保存文件的路径位置(可不填):')
 
 
name_1 = name_1.replace("\\", "/")  # 替换
data = data.replace("\\", "/")  # 替换
 
if name_1.split(".")[1][-4:] == 'DATA':
    F = name_1.split(".")[1].replace("DATA", "")
    if os.path.split(data)[0] == '':
        if os.path.split(name_1)[0] == '':
            data = os.path.split(name_1)[-1].split(".")[0] + '.' + F
        else:
            data = os.path.split(name_1)[0] + '/' + os.path.split(name_1)[-1].split(".")[0] + '.' + F
    else:
        data = data + '/' + os.path.split(name_1)[-1].split(".")[0] + '.' + F
else:
    # 保存路径
    if os.path.split(data)[0] == '':
        if os.path.split(name_1)[0] == '':
            data = name_1.split(".")[1]  # 后缀
            data = os.path.split(name_1)[-1].split(".")[0] + '.' + data + 'DATA'
        else:
            data = name_1.split(".")[1]  # 后缀
            data = os.path.split(name_1)[0] + '/' + os.path.split(name_1)[-1].split(".")[0] + '.' + data + 'DATA'
    else:
        name_3 = name_1.split(".")[1]  # 后缀
        data = data + '/' + os.path.split(name_1)[-1].split(".")[0] + '.' + name_3 + 'DATA'
 
 
 
a = open(name_1, "rb")  #读取文件
b = open(data, "wb")    #写入文件
 
 
 
#使用MD5进行加密(双层加密)
hl = hashlib.md5()
hl.update(password.encode(encoding='utf-8'))
password_list = hl.hexdigest()
 
hl.update(password_list.encode(encoding='utf-8'))
password_list2 = hl.hexdigest()
password_data = password_list+password_list2
 
#加密及解密
def Encryption_and_decryption():
    count = 0  #索引
    for now in a:
        for nowByte in now:
            newByte = nowByte ^ ord(password_data[count % len(password_data)])  #循环遍历出密码的ord值,单个循环
            count += 1
            b.write(bytes([newByte]))   #转换
Encryption_and_decryption()
a.close()
b.close()
 
os.system('pause')
 

各位朋友,昨天我按照他那个文章里写的加密解密代码运行了一遍,写文件名的时候出现了这样的错误:请问是为什么?

img

  • 写回答

4条回答 默认 最新

  • qfcy_ 2022-08-01 11:37
    关注

    input前加上这行代码, 就可以检查你的input函数是不是内置的input函数:

    print(__builtins__.input,input)
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(3条)

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 8月1日
  • 已采纳回答 8月1日
  • 修改了问题 8月1日
  • 修改了问题 8月1日
  • 展开全部

悬赏问题

  • ¥20 机器学习能否像多层线性模型一样处理嵌套数据
  • ¥20 西门子S7-Graph,S7-300,梯形图
  • ¥50 用易语言http 访问不了网页
  • ¥50 safari浏览器fetch提交数据后数据丢失问题
  • ¥15 matlab不知道怎么改,求解答!!
  • ¥15 永磁直线电机的电流环pi调不出来
  • ¥15 用stata实现聚类的代码
  • ¥15 请问paddlehub能支持移动端开发吗?在Android studio上该如何部署?
  • ¥20 docker里部署springboot项目,访问不到扬声器
  • ¥15 netty整合springboot之后自动重连失效