Caesar密码是一种古老的加密技术,它通过将字母表中的每个字母移动固定数量的位置来进行加密。在Javascript中实现Caesar密码相对简单。
Caesar密码属于替换密码的一种,它通过将明文中的每个字母按照一个固定的偏移量进行替换,从而得到密文。例如,如果偏移量是3,那么'A'将被替换为'D','B'将被替换为'E',依此类推。
Caesar密码是一种固定偏移量的替换密码。根据偏移量的不同,可以有多种变体。
以下是一个简单的Javascript实现Caesar密码加密和解密的示例代码:
function caesarEncrypt(text, shift) {
let result = '';
for (let i = 0; i < text.length; i++) {
let char = text[i];
if (char.match(/[a-z]/i)) {
let code = text.charCodeAt(i);
// 大写字母
if (code >= 65 && code <= 90) {
char = String.fromCharCode(((code - 65 + shift) % 26) + 65);
}
// 小写字母
else if (code >= 97 && code <= 122) {
char = String.fromCharCode(((code - 97 + shift) % 26) + 97);
}
}
result += char;
}
return result;
}
function caesarDecrypt(ciphertext, shift) {
return caesarEncrypt(ciphertext, -shift);
}
// 示例使用
let plaintext = "Hello, World!";
let shift = 3;
let encrypted = caesarEncrypt(plaintext, shift);
let decrypted = caesarDecrypt(encrypted, shift);
console.log("Plaintext: ", plaintext);
console.log("Encrypted: ", encrypted);
console.log("Decrypted: ", decrypted);
% 26
)确保偏移量超过26时能够正确循环回到字母表的开头。通过上述示例和解释,你应该能够理解并实现Caesar密码的加密和解密过程。
领取专属 10元无门槛券
手把手带您无忧上云