美文网首页
基于异或运算的简单加密和解密函数

基于异或运算的简单加密和解密函数

作者: IssunRadiance | 来源:发表于2024-04-23 10:04 被阅读0次
  1. 加密
function encryptId(id, key) {
  let encryptedId = '';
  for (let i = 0; i < id.length; i++) {
    encryptedId += String.fromCharCode(id.charCodeAt(i) ^ key.charCodeAt(i % key.length));
  }
  return btoa(encryptedId);
}
// 示例用法
const originalId = '123';
const key = 'secretKey'; // 密钥
const encryptedId = encryptId(originalId, key);
console.log("Encrypted ID:", encryptedId);
  1. 解密
function decryptId(encryptedId, key) {
  encryptedId = atob(encryptedId);
  let decryptedId = '';
  for (let i = 0; i < encryptedId.length; i++) {
    decryptedId += String.fromCharCode(encryptedId.charCodeAt(i) ^ key.charCodeAt(i % key.length));
  }
  return decryptedId;
}
const decryptedId = decryptId(encryptedId, key);
console.log("Decrypted ID:", decryptedId);
  1. 这个示例中,encryptId 函数将原始 ID 使用指定的密钥进行异或运算,并将结果进行 Base64 编码,decryptId 函数则是将加密后的 ID 进行 Base64 解码,然后使用相同的密钥进行异或运算以解密。请注意,密钥的选择对加密的安全性至关重要,更强大的加密方法需要使用更复杂的算法和更长的密钥。
  2. PHP解密方法实例
<?php
function decryptId($encryptedId, $key) {
    $encryptedId = base64_decode($encryptedId);
    $decryptedId = '';
    for ($i = 0; $i < strlen($encryptedId); ++$i) {
        $decryptedId .= chr(ord($encryptedId[$i]) ^ ord($key[$i % strlen($key)]));
    }
    return $decryptedId;
}

// 示例用法
$encryptedId = 'U0VDUkVUIGlEIHN0cmluZw=='; // 假设这是加密后的 ID
$key = 'secretKey'; // 密钥,与前端保持一致
$decryptedId = decryptId($encryptedId, $key);
echo "Decrypted ID: " . $decryptedId;
?>
// 这个示例中,decryptId 函数接收加密后的 ID 和密钥作为参数,首先对加密后的 ID 进行 Base64 解码,然后使用相同的密钥进行异或运算以解密。

相关文章

网友评论

      本文标题:基于异或运算的简单加密和解密函数

      本文链接:https://www.haomeiwen.com/subject/szoixjtx.html