异或加密HTML代码
注意,这篇文章自己用来备忘
加密:
<!DOCTYPE>
<html>
<head>
<script>
function PrefixInteger(num){
if(num.length==1)return '0'+num;
return num;
}
function AutoSet(word){
var ret=new String("");
for(var i=0;i<word.length;++i){
if(word[i]==' ')ret+=" ";
else if(word[i]=='<')ret+="<";
else if(word[i]=='>')ret+=">";
else if(word[i]==(39).fromCharCode)ret+="'";
else if(word[i]=='"')ret+=""";
else if(word[i]=='&')ret+="&";
else ret+=word[i];
}
return ret;
}
function Submit(){
var text=document.getElementById("text").value;
for(var i=0;i<text.length;++i)if(text.charCodeAt(i)>255){
document.getElementById("text").value="";
alert("请不要输入特殊字符!");
return;
}
var numbers=new Array(text.length),encnum=new Array(text.length),encryption=new String(""),ciphertext=new String("");
for(var i=0;i<text.length;++i){
numbers[i]=text.charCodeAt(i);
encnum[i]=Math.round(Math.random()*255);
encryption+=PrefixInteger(encnum[i].toString(16));
ciphertext+=PrefixInteger((numbers[i]^encnum[i]).toString(16));
}
document.getElementById("plaintext").innerHTML=AutoSet(text);
document.getElementById("encryption").innerHTML=encryption;
document.getElementById("ciphertext").innerHTML=ciphertext;
}
</script>
<title>自动加密</title>
</head>
<body>
请输入要加密的文字:
<br />
<input id="text" type="text" placeholder="请输入要加密的文字" />
<button onclick="Submit()">提交</button>
<br />
Plaintext: <span id="plaintext"></span>
<br />
Encryption: <span id="encryption"></span>
<br />
Ciphertext: <span id="ciphertext"></span>
</body>
</html>
解密:
<!DOCTYPE>
<html>
<head>
<script>
function AutoSet(word){
var ret=new String("");
for(var i=0;i<word.length;++i){
if(word[i]==' ')ret+=" ";
else if(word[i]=='<')ret+="<";
else if(word[i]=='>')ret+=">";
else if(word[i]==(39).fromCharCode)ret+="'";
else if(word[i]=='"')ret+=""";
else if(word[i]=='&')ret+="&";
else ret+=word[i];
}
return ret;
}
function Name(x){
var i=x.charCodeAt(0);
if(i>47&&i<58)return i-48;
if(i>64&&i<71)return i-55;
if(i>96&&i<103)return i-87;
alert("不合法的密文!");
document.getElementById("text").value="";
document.getElementById("password").value="";
}
function Solve(){
var text=document.getElementById("text").value,password=document.getElementById("password").value;
if(text.length%2==1||password.length%2==1||text.length!=password.length){
document.getElementById("text").value="";
document.getElementById("password").value="";
alert("不合法的密文!");
return;
}
var a=0,b=0,ans=new String();
for(var i=0;i<text.length;i+=2){
a=Name(text[i])*16+Name(text[i+1]);
b=Name(password[i])*16+Name(password[i+1]);
ans+=String.fromCharCode(a^b);
}
document.getElementById("answer").innerHTML=AutoSet(ans);
}
</script>
<title>自动解密</title>
</head>
<body>
请输入要解密的密文:
<br />
<input id="text" type="text" placeholder="请输入要解密的密文" />
<br />
请输入密钥:
<br />
<input id="password" type="password" placeholder="请输入密钥" />
<br />
<button onclick="Solve()">提交</button>
<br />
明文: <span id="answer"></span>
</body>
</html>