Caesar cipher,又叫移位密碼。
移位密碼也就是密碼中的字母會按照指定的數(shù)量來做移位蕉陋。
一個常見的案例就是ROT13密碼,字母會移位13個位置拨扶。由'A' ? 'N', 'B' ? 'O'凳鬓,以此類推。
問題:寫一個ROT13函數(shù)患民,實現(xiàn)輸入加密字符串缩举,輸出解密字符串。
所有的字母都是大寫匹颤,不要轉(zhuǎn)化任何非字母形式的字符(例如:空格仅孩,標點符號),遇到這些特殊字符印蓖,跳過它們辽慕。
function rot13(str) {
? ? var str_temp=""; ?//初始化一個字符串
? ? for(var i=0;i='A'&&str[i]<='M'){
? ? ? str_temp+=String.fromCharCode(str.charCodeAt(i)+13);
? ? }else if(str[i]>'M'&&str[i]<='Z'){
? ? ? str_temp+=String.fromCharCode(str.charCodeAt(i)-13);
? ? }else{
? ? ? str_temp+=str[i]; ?//處理其他字符
? ? }
}
return str_temp;
}
實現(xiàn)思想:
將輸入的字符串分批處理,由于要位移13個位置另伍,將字母分為兩部分:‘A’-‘M’和‘N'-‘Z’鼻百,其他字符不變輸出绞旅。