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.length];
output += String.fromCharCode(c ^ k);
return output;
decrypt('123456abc')
//打印结果 '2;7=53bkg'
工具测试结果图:
异或,英文为exclusive OR,或缩写成xor
异或(xor)是一个数学运算符。它应用于逻辑运算。异或的数学符号为“⊕”,计算机符号为“xor”。其运算法则为: a⊕b = (¬a ∧
b) ∨ (a ∧¬b) 如果a、b两个值不相同,则异或结果为1。如果a、b两个值相同,异或结果为0。
异或也叫半加运算,其运算法则相当于不带进位的二进制加法:二进制下用1表示真,0表示假,则
这算是一个入门的文件加密解密文章吧。虽然说当今互联网信息共享。但是我真的搜索不到什么比较好的由浅入深讲解文件加密解密的文章。可能我的姿势不太对。这篇文章算是记录一下我的学习。也同时分享给大家。如果错误,欢迎指正。
一、当然是了解文件的存储结构了。
太底层的东西就不讲了,因为我也不清楚。大家都知道计算机其实只认识1and0。其实就是一个高电压和一个低电压。
好吧,其实我也不懂。这部分略过。
ZYBXOREncryptUtil.h
@interface ZYBXOREncryptUtil : NSObject
+(ZYBXOREncryptUtil * )shareInstance;
//加密
-(NSString *)xor_encrypWithString:(NSString *)str;
-(NSString *)xor_decryptWithString:(NSString *)str;
@interface NSData(XOREncrypt)
/** 加密 */
(NSString *)xor_encrypt;
/** 解密 */
(NSString *)xor_decrypt;
ZYBXOREncryptUtil.m
@implementation ZYBXOREn
在一道LOTTARY题目上卡了2个小时,结果题目系统崩了,好吧,系统o( ̄▽ ̄)d
文章目录前言一、异或(XOR)运算进行加密解密二、XORTOOL1.引入库三.异或的脚本
加解密有异或这种方式
XORTOOL
一、异或(XOR)运算进行加密解密
什么是异或运算
异或运算是在二进制数中的一种按维进行计算的逻辑运算符。其真值表为:
左操作数 右操作数 结果
0 0 0
0 1 1
1 0 1
1 1 0
加密过程
从上面的真值表中可以看出,我们可以取右操作数(左操作数)当做加密密钥,记为key,