当前位置: 首页 > news >正文

HJ36 字符串加密

HJ36 字符串加密

字符串加密

描述
有一种技巧可以对数据进行加密,它使用一个单词作为它的密匙。下面是它的工作原理:首先,选择一个单词作为密匙,如TRAILBLAZERS。如果单词中包含有重复的字母,只保留第1个,将所得结果作为新字母表开头,并将新建立的字母表中未出现的字母按照正常字母表顺序加入新字母表。如下所示:(实际需建立小写字母的字母表,此字母表仅为方便演示)
A B C D E F G H I J K L M N O P Q R S T U V W X Y Z T R A I L B Z E S
C D F G H J K M N O P Q U V W X Y
上面其他用字母表中剩余的字母填充完整。在对信息进行加密时,信息中的每个字母被固定于顶上那行,并用下面那行的对应字母一一取代原文的字母(字母字符的大小写状态应该保留)。因此,使用这个密匙,
Attack AT DAWN (黎明时攻击)就会被加密为Tpptad TP ITVH。

请实现下述接口,通过指定的密匙和明文得到密文。

 - 数据范围:1≤n≤100  ,保证输入的字符串中仅包含小写字母  - 输入描述:先输入key和要加密的字符串  - 输出描述:返回加密后的字符串

输入: nihao
ni
输出:le

using System;
using System.Collections.Generic;public class Program {public static void Main() {string keystr;keystr = Console.ReadLine();string str;str = Console.ReadLine();Dictionary<char, char> dic = new Dictionary<char, char>();int i = 97;for (int j = 0; j < keystr.Length; j++) {if (!dic.ContainsValue(keystr[j])) {dic.Add(Convert.ToChar(i), keystr[j]);i++;}}for (int j = 97; j < 123; j++) {if (!dic.ContainsValue(Convert.ToChar(j))) {dic.Add(Convert.ToChar(i), Convert.ToChar(j));i++;}}for (int j = 0; j < str.Length; j++) {str = str.Remove(j, 1).Insert(j, dic[str[j]].ToString());}Console.WriteLine(str);}
}

http://www.mrgr.cn/news/63777.html

相关文章:

  • flutter 打包
  • Python实现模式串匹配的KMP算法
  • C++进阶:C++11的新特性
  • 视频文件损坏无法播放怎么办?有什么办法可以修复视频吗?
  • 免杀对抗—反VT沙盒虚拟机反调试进程APC注入
  • 人才与金融科技双向奔赴,2024 深圳国际金融科技大赛校园行圆满结束
  • c++仿函数--通俗易懂
  • 【p2p、分布式,区块链笔记 Torrent】WebTorrent 的lt_donthave插件
  • LeetCode总结-链表
  • 使用TensorFlow进行图像分类
  • 某小型CMS漏洞复现审计
  • Ceisum无人机巡检视频投放
  • NET Core的AOP实施方法1 DispatchProxy
  • 【Linux】基础指令
  • ERROR: Failed cleaning build dir for numpy Failed > to build numpy ERROR
  • 一键切换暗黑模式,这些代码片段你不可错过
  • 直流电机在液压泵领域的应用
  • ubuntu运行gazebo导致内存越来越少
  • Android 同花顺面经
  • 面试题分享1
  • 【染色时间】
  • markdown/Latex分子,分母,除号,怎么编辑
  • 如何实现千万级数据表的快速分页查询
  • 题目:0的个数
  • 冰雪奇缘!中科院一区算法+双向深度学习+注意力机制!SAO-BiTCN-BiGRU-Attention雪消融算法优化回归预测
  • systemctl restart NetworkManager 重启后,文件/etc/resolv.conf修改失败