按位异或加密字符串,字符串加解密都是该函数
缺陷是加密密钥使用的字符最好不要出现需要加密的字符串中的字符,一旦出现原字符与加密字符一样额情况,异或结果为0,导致不能还原字符串,可以考虑更改算法避免这种情况

import _ from 'lodash'
export const xor = str => {
  const key = '^%@*$' // 加密密钥,这个随便写
  const strlength = str.length
  const keylength = key.length
  const repeatkey = _.repeat(key, _.floor(strlength / keylength) + 1)
  let newstr = ''
  for (let index = 0; index < strlength; index++) {
    const n = str.charCodeAt(index) ^ repeatkey.charCodeAt(index)
    newstr += String.fromCharCode(n)
  return newstr
function decrypt(test) {
  var key = [3, 9, 4, 9, 0, 5];//密钥
  if (typeof key == 'number') key = [key];
  let output = '';
  for (var i = 0; i < test.length; i++) {
    const c = test[i].charCodeAt();
    const k = key[i % key.lengt
                                    异或(xor)是一个数学运算符。异或的数学符号为“⊕”,计算机符号为“xor”。两个值相同时,返回false,否则返回true。也就是说,XOR可以用来判断两个值是否不同。如对数10100001的第1位和第2位翻转,可以将数与00000110进行按位异或运算。JavaScript 语言的二进制运算,有一个专门的 XOR 运算符,写作^。2、如果有两个any类型的变量,可以先使用!数a两次异或同一个数b(a=a^b^b)仍然为原值a.如果两个二进制位相同,就返回0,否则返回1。
                                    异或的符号是^。按位异或运算, 对等长二进制模式按位或二进制数的每一位执行逻辑按位异或操作. 操作的结果是如果某位不同则该位为1, 否则该位为0.
xor运算的逆运算是它本身,也就是说两次异或同一个数最后结果不变,即(a xor b) xor b = a。xor运算可以用于简单的加密,比如我想对我MM说1314520,但怕别人知道,于是双方约定拿我的生日19880516作为密钥。1314520 ...
                                    在我们的加密和解密方法中,我们将利用文心一言的特点来生成随机的字符串,并将其用作加密和解密的密钥。总的来说,我们的加密和解密方法基于百度公司的文心一言,利用其生成随机字符串的特点,生成一个随机的密钥,并使用XOR运算对明文进行加密和密文进行解密。接着,我们使用加密函数相同的方式对密文进行解密,即使用密钥中的字符依次对密文中的字符进行异或运算,得到明文中的字符编码。具体来说,我们使用密钥中的每个字符依次对明文中的字符进行异或运算,得到一个新的字符编码。函数用于将给定的明文进行加密,并返回加密后的密文。
 安装: npm install --save xor-crypt
使用: require('xor-crypt')
 安装: npm install --save xor-crypt
 CDN URL: //wzrd.in/bundle/xor-crypt@0.0.2
使用: require('xor-crypt')
 安装: ender add xor-crypt
使用: require('xor-crypt')
 安装: component install RobLoach/xor-crypt
使用: require('xor-crypt')
 安装: bower install xor-crypt
有关XOR-Crypt的实时用法,请参见XOR-Crypt演示。
                                    一、C语言按位与&实例程序分析:0&0=0; 0&1=0; 1&0=0; 1&1=1程序源代码:#include "stdio.h"main(){int a,b;a=077;b=a&3;printf("\40: The a & b(decimal) is %d \n",b);b&=7;printf("\40: The a & ...
                                    这是『就要学习 Go 语言』系列的第 7 篇分享文章今天,我们来讲下Go语言的算术运算符、比较运算符和逻辑运算符。算术运算符+    sum                    integers, floats, complex values (复数), strings
-    difference             integers, floats, complex values
* ...
                                    如果您的代码需要长期维护,可以使用代码混淆技术,使代码的可读性降低,这样也就不容易被别人拿来二次开发和篡改。如果您需要将代码保持可读性,但是又需要保护代码的安全性,可以采取混合应用加密算法和混淆技术相互结合,以最佳的方式实现代码保护。例如,混淆代码可能会将许多不同的变量名替换为相同的单个字符,或者将多个行的代码压缩到一个代码行中,可以通过自动化工具或手动方法来反混淆代码。总之,随着互联网技术的发展,对于网络安全的要求越来越高,对于JavaScript加密和解密,技术发展均取得了一定的进步。