首页 > 解决方案 > 如何在字符串的特定位置添加随机生成的字符?

问题描述

我正在处理一个需要我从文件中读取字符串的问题,并且:

  1. 扭转它
  2. 将定义整数加密强度。它可以设置为 0 到 255 之间的任何整数值。
  3. 根据加密强度的值,将在步骤 1 中反转字符串的每个字母之间插入一些随机字母或数字。

例如,如果强度设置为 1,单词 hello 可以加密为o x l a l 9 e l h

另一个例子,如果强度为 2,单词 hello 可以加密为 o xi l 4h l rc e 6r h

我的代码总体上工作正常,但问题是我每次都会在字符串的字母之间插入重复的随机字符。

这是我的代码,请帮助我识别错误。

代码

def encrypt():
    data = "hello"
    content = data[::-1]

    encryption_str = 2
    
    characters = string.ascii_uppercase +string.ascii_lowercase+ 
    string.digits
    
    
    res = (random.choice(characters).join(content[i:i + encryption_str] for i 
    in range(0, len(content)))) #I am stuck here
    
    print(res)
encrypt()

输出

在此处输入图像描述 在此处输入图像描述

标签: pythonpython-3.xstringrandomreplace

解决方案


这将正常工作:

import string, random
def encrypt():
    data = "hello"
    content = data[::-1]

    encryption_str = 2

    characters = string.ascii_uppercase +string.ascii_lowercase+string.digits
    res = ""
    res+=content[0]
    for i in range(1,len(content)):
        for j in range(encryption_str):
            res+=random.choice(characters)
        res+=content[i]

    print(res)
encrypt()

输出

oLal5ilWremph

推荐阅读