湖南网站建设 系统,wordpress 悬浮广告,wordpress头像被墙,深圳网站开发建设培训php实现 字符串加密#xff08;分类分布分工#xff0c;化不可能为可能#xff09; 一、总结 一句话总结#xff1a;谋而后动#xff0c;加先伪代码#xff0c;在带函数逻辑#xff0c;在函数的方式可以极大的避免错误和降低难度。不然这个题目乎出现各种乱七八糟的错误… php实现 字符串加密分类分布分工化不可能为可能 一、总结 一句话总结谋而后动加先伪代码在带函数逻辑在函数的方式可以极大的避免错误和降低难度。不然这个题目乎出现各种乱七八糟的错误。 1、算法中如何避免错误和降低难度 谋而后动加先伪代码在带函数逻辑在函数的方式可以极大的避免错误和降低难度。 2、调试的时候出现了一个在小写密码表中找大写字母的错误 也就是少了第57行 56 if($data[$i]A$data[$i]Z){ 57 $data[$i]strtolower($data[$i]); 58 $ans.chr(ord($passwordListLower[$data[$i]])-32); 3、php中如何取一个字符串中的某个字符 数组的方式[] 18 function distinctKey($key){
19 //先把$key转成小写 20 $keystrtolower($key); 21 $lenstrlen($key); 22 for($i0;$i$len;$i){ 23 $keyArr[$key[$i]]; 24 } 二、字符串加密 题目描述 有一种技巧可以对数据进行加密它使用一个单词作为它的密匙。下面是它的工作原理首先选择一个单词作为密匙如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。 请实现下述接口通过指定的密匙和明文得到密文。 详细描述 接口说明 原型 voidencrypt(char * key,char * data,char * encrypt); 输入参数 char * key密匙 char * data明文 输出参数 char * encrypt密文 返回值 void 输入描述: 先输入key和要加密的字符串 输出描述: 返回加密后的字符串 示例1 输入 复制 nihao
ni输出 复制 le 代码 1 ?php2 while($keytrim(fgets(STDIN))){3 $datatrim(fgets(STDIN));4 //密匙去重distinctKey()5 //echo distinctKey($key).PHP_EOL;6 $distinctKeyStrdistinctKey($key);7 //用去重了的密匙构建密码表密文字串formPassword($distinctKeyStr)8 $passwordLowerformPasswordLower($distinctKeyStr);9 //echo $passwordLower;
10 //用密文字串来构建密码表大写和小写两套,小写只用在大写的基础上面加上32即可 getPasswordListLower(distinctKeyStr);
11 $passwordListLowergetPasswordListLower($passwordLower);
12 //print_r($passwordListLower);
13 //用密码表根据明文输出密文getEncrypt($data,$passwordListLower)
14 $encryptgetEncrypt($data,$passwordListLower);
15 echo $encrypt.PHP_EOL;
16 //echo chr(ord(b)-32);
17 }
18 function distinctKey($key){
19 //先把$key转成小写
20 $keystrtolower($key);
21 $lenstrlen($key);
22 for($i0;$i$len;$i){
23 $keyArr[$key[$i]];
24 }
25 foreach($keyArr as $k$v){
26 $ans.$k;
27 }
28 return $ans;
29 }
30
31 function formPasswordLower($distinctKeyStr){
32 for($i0;$i26;$i){
33 $vis[chr(ord(a)$i)]0;
34 }
35 $lenstrlen($distinctKeyStr);
36 for($i0;$i$len;$i){
37 $vis[$distinctKeyStr[$i]]1;
38 }
39 for($i0;$i26;$i){
40 if(!$vis[chr(ord(a)$i)]) $distinctKeyStr.chr(ord(a)$i);
41 }
42 return $distinctKeyStr;
43 }
44
45 function getPasswordListLower($passwordLower){
46 for($i0;$i26;$i){
47 $passwordListLower[chr(ord(a)$i)]$passwordLower[$i];
48 }
49 return $passwordListLower;
50 }
51
52 function getEncrypt($data,$passwordListLower){
53 $lenstrlen($data);
54 $ansnull;
55 for($i0;$i$len;$i){
56 if($data[$i]A$data[$i]Z){
57 $data[$i]strtolower($data[$i]);
58 $ans.chr(ord($passwordListLower[$data[$i]])-32);
59 }else if($data[$i]a$data[$i]z){
60 $ans.$passwordListLower[$data[$i]];
61 }else{
62 $ans.$data[$i];
63 }
64 }
65 return $ans;
66 }
67
68 ? 转载于:https://www.cnblogs.com/Renyi-Fan/p/9233782.html