Jam*_*ler 4 coldfusion magic-numbers rot13 coldfusion-2018
我有这个函数来计算ROT13.
string function rot13(required string inString) output="false" {
var j = 0;
var k = 0;
var out = "";
for (var i = 1; i <= Len(arguments.inString); i++){
j = asc(Mid(arguments.inString, i, 1));
if(j >= asc("A") && j <= asc("Z")) {
j = ((j - 52) % 26) + asc("A");
}
else if(j >= asc("a") && j <= asc("z")) {
j = ((j - 84) % 26) + asc("a");
}
out &= Chr(j);
} // end for
return out;
}
Run Code Online (Sandbox Code Playgroud)
我不喜欢它似乎有3个幻数52,26和84.我认为26可以替换 asc("Z") - asc("A") + 1
但我不知道52和84代表什么.我不知道我会给他们起什么名字.
通过查看您的幻数和ASCII表,我想出了这个.
26是字母表中的字母数.那是你的第一个神奇数字.
asc('A') 是65. 65减13是52,你的第二个神奇数字.
asc('a') 是97. 97减13是84,你的第三个神奇数字.
这就是数字所代表的.您可以决定如何命名变量.或者,您可以将解释添加为注释.
编辑从这里开始
13是您要旋转的字符数.这也是一个神奇的数字.您可以通过将此参数设置为参数来增强您的功能,以便您也可以通过其他数字进行旋转.
| 归档时间: |
|
| 查看次数: |
88 次 |
| 最近记录: |