微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

使用 python 混淆文本文件 - 通过反转单词并在它们之间插入特定数量的随机字符

如何解决使用 python 混淆文本文件 - 通过反转单词并在它们之间插入特定数量的随机字符

初学者编码问题 我应该编写一个代码来反转文件内容,然后根据用户选择的强度插入一些随机字符。然后它会创建一个包含受阻文件的新文件

例如,如果用户选择强度=2,它会在文本文件中的每个字母之间插入2个随机字符:猫坐---> sgyt6gilns t7faxdc e3dh1kT

现在我的程序在中间插入了太多字符,我不知道为什么。 这是它在做什么:

输入:CAT

强度输出 = 1:TeAEADQoC

import string
import random

def getRandomChar():
    alpha = string.ascii_letters + string.digits
    return random.choice(alpha)

def randomString(EncrypStrength): 
    count = 0
    result = ''
    while count < len(EncrypStrength):
        result += getRandomChar()
        count += 1
    return result

def ReverseString(OrigFile):
    return OrigFile[::-1]    

def LineEncrypt(line,EncrypStrength):
    EncrypStrength = ReverseString(line)
    
    index = 0 
    newline = EncrypStrength[index]
    index += 1
    
    while index < len(EncrypStrength):
        newline += randomString(EncrypStrength)
        newline += EncrypStrength[index]
        index += 1
    
    return newline    

def main():
    
    OrigFile =input('Original File Name:')
    EncryptedFile = input("obfuscated File Name:")
    EncrypStrength = int(input('Enter the Encryption Strength:'))
    
    Orig = open(OrigFile,'r')
    Encrypted = open(EncryptedFile,'w') 

    line = Orig.readline()
    
    while line!= '':
        encryptLine = LineEncrypt(line,EncrypStrength)
        Encrypted.write(encryptLine +"\n")
        line = Orig.readline()
           
    Orig.close()
    Encrypted.close()


if __name__=="__main__":
    main()

解决方法

在行加密方法中,您错误地使用了加密强度,您使用反向行覆盖了要作为 EncryptStrength 放置的字符数。


def LineEncrypt(line,EncrypStrength):
    reversedString = ReverseString(line)
    
    index = 0 
    newline = reversedString[index]
    index += 1
    
    while index < len(reversedString):
        newline += randomString(EncrypStrength)
        newline += reversedString[index]
        index += 1

,

正如 Ritesh 提到的那样,您混淆了 EncrypStrength 并覆盖了它。 这是完整的更正代码,我希望它能按您的预期工作。

import string
import random

def getRandomChar():
    alpha = string.ascii_letters + string.digits
    return random.choice(alpha)

def randomString(EncrypStrength): 
    count = 0
    result = ''
    while count < EncrypStrength:
        result += getRandomChar()
        count += 1
    return result

def ReverseString(OrigFile):
    return OrigFile[::-1]    

def LineEncrypt(line,EncrypStrength):
    RevStr = ReverseString(line)
    
    index = 0 
    newline = RevStr[index]
    index += 1
    
    while index < len(RevStr):
        newline += randomString(EncrypStrength)
        newline += RevStr[index]
        index += 1
    
    return newline    

def main():
    
    OrigFile =input('Original File Name:')
    EncryptedFile = input("obfuscated File Name:")
    EncrypStrength = int(input('Enter the Encryption Strength:'))
    
    Orig = open(OrigFile,'r')
    Encrypted = open(EncryptedFile,'w') 

    line = Orig.readline()
    
    while line!= '':
        encryptLine = LineEncrypt(line,EncrypStrength)
        Encrypted.write(encryptLine +"\n")
        line = Orig.readline()
           
    Orig.close()
    Encrypted.close()


if __name__=="__main__":
    main()

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。