You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何基于index_shuffle数组对encryted_message字符按索引加密重排?

基于索引数组实现消息加密重排

你已经完成了将用户输入拆分为字符数组encryted_message,并生成对应索引数组index_shuffle的代码。先提个小优化:你的字符拆分逻辑可以简化——直接用encryted_message = list(User_input)就能得到单个字符组成的数组,不需要嵌套循环处理char_split。

接下来要实现**通过打乱index_shuffle来重排encryted_message**的加密效果,核心思路是:先打乱索引数组,再根据打乱后的索引从原字符数组中取对应字符,生成加密后的消息。具体实现如下:

完整代码示例

import random

encryted_message = []
index_shuffle = []

User_input = input("Type your message here: ")
# 简化字符拆分逻辑
encryted_message = list(User_input)
# 生成初始索引数组
index_shuffle = list(range(len(encryted_message)))

# 1. 打乱索引数组(加密核心逻辑,打乱规则可自定义)
random.shuffle(index_shuffle)

# 2. 根据打乱后的索引重排字符数组,生成加密消息
encrypted_result = [encryted_message[idx] for idx in index_shuffle]

# 输出验证
print("原字符数组:", encryted_message)
print("打乱后的索引数组:", index_shuffle)
print("加密后的消息数组:", encrypted_result)

代码说明

  • 用random.shuffle()直接打乱index_shuffle数组,随机性是加密的关键;如果需要固定的置换规则(比如你示例中的[4,1,2,3,0]),可以手动设置index_shuffle的顺序,替换掉随机打乱的步骤。
  • 列表推导式[encryted_message[idx] for idx in index_shuffle]会遍历打乱后的索引,依次从原字符数组中取出对应位置的字符,自动生成重排后的加密数组。

示例输出

输入hello时,可能得到如下结果(因随机性,每次索引打乱结果不同):

Type your message here: hello
原字符数组: ['h', 'e', 'l', 'l', 'o']
打乱后的索引数组: [4, 1, 2, 3, 0]
加密后的消息数组: ['o', 'e', 'l', 'l', 'h']

内容的提问来源于stack exchange,提问作者CentralDev

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.04 07:10:45