雨声飕飕催早寒,胡雁翅湿高飞难。 ——杜甫
也许秋天的雨有更多的故事;但和今天的题目没有太大关系;今天来一到简单加密的题目;
题目
编写一个函数nico/nico();有两个参数:
- key 由不重复的字母数组组成;比如a3sc;
- message 需要加密的字符串;
用key 对message 进行加密;
下面详细说明加密规则:
- 首先根据key创建一个数字键,数字键按照字母顺序指定每个字母的位置。比如key是:“crazy” 按字母顺序排序 是“ acryz”所以得到对应的数字键是 23154 (对于crazy各字母排序);
- 然后用得到的数字键进行加密字符串 “secretinformation” ;对message进行分组;的到下面的结果:
2 3 1 5 4 --------- s e c r e t i n f o r m a t i o n
然后分别对各组进行排序:
1 2 3 4 5 --------- c s e e r n t i o f a r m i t o n
然后重新组合:也就得到了加密的结果:"cseerntiofarmit on "(主要不要忽略空格);
为了方便测试多给出几个例子:
nico("crazy", "secretinformation") => "cseerntiofarmit on " nico("abc", "abcd") => "abcd " nico("ba", "1234567890") => "2143658709" nico("key", "key") => "eky"
分析也许这个题目不需要分析,按照步骤走就好。
- key 排序;
- message 分组;排序;
- 重组;
但有一点需要注意;加密结果的长度是固定的 key的N倍;空白字符不能去掉;
结尾有了加密,是不是还得有解密呢?如果有兴趣可以试一试解密;
也许没必要解密;就像有些话解密了也没人懂;
又或许它本来就没必要加密;
至于代码;如需要请留言;
,