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

  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 解码,然后使用相同的密钥进行异或运算以解密。
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • ------------.h文件 #import <Foundation/Foundation.h> #defin...
    怪兽密保阅读 8,219评论 0 1
  • 异或,英文为exclusive OR,或缩写成xor异或(xor)是一个数学运算符。它应用于逻辑运算。异或的数学符...
    黄晓果阅读 8,770评论 2 0
  • 一、密码学的起源密码学的出现主要是因为战争,有了战争,就有了密码学的应用环境。在战争中,对阵双方要保护自己的通信安...
    Qi0907阅读 5,291评论 0 1
  • 简介 本文总结了在爬虫中常见的各种加密算法、编码算法的原理、在 JavaScript 中和 Python 中的基本...
    K哥爬虫阅读 3,627评论 0 0
  • 前言:很多人认为MD5是一种加密算法,其实严格来说MD5是为计算机安全领域广泛使用的一种散列函数,用以提供消息的完...
    Orz013阅读 5,908评论 0 0