- 加密
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);
- 解密
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);
- 这个示例中,encryptId 函数将原始 ID 使用指定的密钥进行异或运算,并将结果进行 Base64 编码,decryptId 函数则是将加密后的 ID 进行 Base64 解码,然后使用相同的密钥进行异或运算以解密。请注意,密钥的选择对加密的安全性至关重要,更强大的加密方法需要使用更复杂的算法和更长的密钥。
- 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 解码,然后使用相同的密钥进行异或运算以解密。