2301_79598588 2023-09-04 09:39 采纳率: 0%
浏览 23

python流式加密

img


输入一个任意长度可见字符串组成的字符串,并随机生成一个等长度的随机密钥并保存
在文件中,采用按位异或的方式进行二进制加密,并将该加密结果保存在一个文件中,解密
时课导入该密文和密钥进行解密,将解密结果进行输出。

  • 写回答

2条回答 默认 最新

  • CSDN-Ada助手 CSDN-AI 官方账号 2023-09-04 12:45
    关注

    【以下回答由 GPT 生成】

    可以使用Python的random库生成随机密钥,并使用按位异或进行加密和解密操作。以下是具体的解决方案:

    1. 首先,导入random库和os库(用于文件操作):
    import random
    import os
    
    1. 定义一个函数用于生成随机密钥:
    def generate_key(length):
        key = ""
        for _ in range(length):
            key += chr(random.randint(32, 126))
        return key
    

    该函数将生成指定长度的随机密钥,每个字符的ASCII码在可见字符范围内(32-126)。

    1. 定义一个函数用于加密字符串并保存密文到文件:
    def encrypt_string(input_string, output_file):
        key = generate_key(len(input_string))
        encrypted_string = ""
        for i in range(len(input_string)):
            encrypted_string += chr(ord(input_string[i]) ^ ord(key[i]))
    
        with open(output_file, 'w') as f:
            f.write(encrypted_string)
    
        with open('key.txt', 'w') as f:
            f.write(key)
    
        return encrypted_string
    

    该函数将输入字符串按位异或加密,并将加密结果保存到指定的文件中,同时将密钥保存到名为key.txt的文件中。

    1. 定义一个函数用于解密密文并返回解密结果:
    def decrypt_string(ciphertext, key_file):
        with open(key_file, 'r') as f:
            key = f.read()
    
        decrypted_string = ""
        for i in range(len(ciphertext)):
            decrypted_string += chr(ord(ciphertext[i]) ^ ord(key[i]))
    
        return decrypted_string
    

    该函数将导入密文和密钥文件,进行按位异或解密操作,并返回解密结果。

    1. 调用函数进行加密和解密操作:
    # 示例输入字符串
    input_string = "Hello, world!"
    
    # 加密字符串并保存密文到文件
    ciphertext = encrypt_string(input_string, 'encrypted.txt')
    
    # 解密密文并输出解密结果
    decrypted_string = decrypt_string(ciphertext, 'key.txt')
    
    print("加密结果:", ciphertext)
    print("解密结果:", decrypted_string)
    

    通过以上代码,您可以实现对任意长度的可见字符串进行加密和解密,并将加密结果和密钥保存到文件中。请注意,为了确保密钥的安全性,您需要妥善保管密钥文件。



    【相关推荐】



    如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^
    评论

报告相同问题?

问题事件

  • 创建了问题 9月4日