举个例子
什么是位异或运算?
就是这个 "^" 符号
答案是 就是把a=2换算成二进制10,b=1换算成二进制01,位异或换算,同位相同为0,相异为1,结果为11=3(10进制); (这个是在一道算法题看到的算法,用来解决找出1到100以内唯一一个奇数个的整数如[1,1,2,2,3,4,4,5,5]);
实例
知道算法,就可以飞起来了,按惯例来张效果图!
加密的
解密的
页面文件就不上了,来看一下js!
var valueKey=document.querySelector('#valueKey'),
key=document.querySelector("#key"),
loock=document.querySelector("#loock"),
unloock=document.querySelector("#unloock");
loock.onclick=function(){
var loockVal=transt(key.value,valueKey.value);
valueKey.value+="\n\n\n"+loockVal+"\n\n\n"+"加密成功";
alert("加密成功");
}
unloock.onclick=function(){
var unloockVal=transt(key.value,valueKey.value);
valueKey.value+="\n\n\n"+unloockVal+"\n\n\n"+"解密成功";
alert("解密成功");
}
function transt(key,val){
var result="";
for(var i=0;i<val.length;i++){
for(var j=0;j<key.length;j++){
var resultKey=key.charCodeAt(j);//转二进制
var resultVal=val.charCodeAt(i)^resultKey;
}
result+=String.fromCharCode(resultVal);//转10进制
}
return result;
}
可以看出是取出每个字符的二进制来进行位异或运算
This work is licensed under a CC A-S 4.0 International License.