forked from rachanon/stdbWeb
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
152 lines
3.9 KiB
152 lines
3.9 KiB
<!DOCTYPE html> |
|
<html lang="en"> |
|
<head> |
|
<meta charset="utf-8"> |
|
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1"> |
|
<title>Login Form</title> |
|
<link rel="stylesheet" href="css/style.css"> |
|
<link rel="shortcut icon" type="image/png" href="https://avatars1.githubusercontent.com/u/17867603?v=3&s=200"/> |
|
<script src="js/jquery-3.0.0.min.js"></script> |
|
<!--[if lt IE 9]><script src="//html5shim.googlecode.com/svn/trunk/html5.js"></script><![endif]--> |
|
<style> |
|
.flexCenter { |
|
display:flex; |
|
height: 550px; |
|
justify-content: center; |
|
align-items:center; |
|
} |
|
</style> |
|
</head> |
|
|
|
|
|
<body> |
|
<section class="container"> |
|
<div class="login"> |
|
<h1>Login to STDB</h1> |
|
<form method="post" > |
|
<p><input type="text" name="login" value="" placeholder="token"></p> |
|
<p class="submit"><input type="button" value="decode" onClick="pasuser()"></p> |
|
</form> |
|
</div> |
|
</section> |
|
</body> |
|
<script language="javascript"> |
|
|
|
|
|
function pasuser(form) { |
|
var string = 'eyJ1c2VybmFtZSI6InJhY2hhbm9uIiwib3JpZ19pYXQiOjE0NjYxNTM5NDcsInVzZXJfaWQiOjEsImVtYWlsIjoiIiwiZXhwIjoxNDY2NTg1OTQ3fQ' |
|
|
|
var jwpStdb={ |
|
_keyStr:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=", |
|
encode:function(e){var t=""; |
|
var n,r,i,s,o,u,a; |
|
var f=0;e=jwpStdb._utf8_encode(e); |
|
while(f<e.length){ |
|
n=e.charCodeAt(f++); |
|
r=e.charCodeAt(f++); |
|
i=e.charCodeAt(f++);s=n>>2; |
|
o=(n&3)<<4|r>>4; |
|
u=(r&15)<<2|i>>6; |
|
a=i&63; |
|
if(isNaN(r)){ |
|
u=a=64 |
|
} |
|
else if(isNaN(i)){ |
|
a=64 |
|
} |
|
t=t+this._keyStr.charAt(s)+this._keyStr.charAt(o)+this._keyStr.charAt(u)+this._keyStr.charAt(a) |
|
} |
|
return t |
|
}, |
|
decode:function(e){ |
|
var t=""; |
|
var n,r,i; |
|
var s,o,u,a; |
|
var f=0;e=e.replace(/[^A-Za-z0-9+/=]/g,""); |
|
while(f<e.length){ |
|
s=this._keyStr.indexOf(e.charAt(f++)); |
|
o=this._keyStr.indexOf(e.charAt(f++)); |
|
u=this._keyStr.indexOf(e.charAt(f++)); |
|
a=this._keyStr.indexOf(e.charAt(f++)); |
|
n=s<<2|o>>4;r=(o&15)<<4|u>>2;i=(u&3)<<6|a; |
|
t=t+String.fromCharCode(n); |
|
if(u!=64){ |
|
t=t+String.fromCharCode(r) |
|
} |
|
if(a!=64){ |
|
t=t+String.fromCharCode(i) |
|
} |
|
} |
|
t=jwpStdb._utf8_decode(t); |
|
return t |
|
}, |
|
_utf8_encode:function(e){ |
|
e=e.replace(/rn/g,"n"); |
|
var t=""; |
|
for(var n=0;n<e.length;n++){ |
|
var r=e.charCodeAt(n); |
|
if(r<128){ |
|
t+=String.fromCharCode(r) |
|
} |
|
else if(r>127&&r<2048){ |
|
t+=String.fromCharCode(r>>6|192); |
|
t+=String.fromCharCode(r&63|128) |
|
} |
|
else{ |
|
t+=String.fromCharCode(r>>12|224); |
|
t+=String.fromCharCode(r>>6&63|128); |
|
t+=String.fromCharCode(r&63|128) |
|
} |
|
} |
|
return t |
|
}, |
|
_utf8_decode:function(e){ |
|
var t=""; |
|
var n=0; |
|
var r=c1=c2=0; |
|
while(n<e.length){ |
|
r=e.charCodeAt(n); |
|
if(r<128){ |
|
t+=String.fromCharCode(r); |
|
n++ |
|
} |
|
else if(r>191&&r<224){ |
|
c2=e.charCodeAt(n+1); |
|
t+=String.fromCharCode((r&31)<<6|c2&63); |
|
n+=2 |
|
} |
|
else{ |
|
c2=e.charCodeAt(n+1); |
|
c3=e.charCodeAt(n+2); |
|
t+=String.fromCharCode((r&15)<<12|(c2&63)<<6|c3&63); |
|
n+=3 |
|
} |
|
} |
|
return t |
|
} |
|
} |
|
|
|
// Define the string |
|
|
|
// Encode the String |
|
// var encodedString = jwpStdb.encode(string); |
|
console.log(string); // Outputs: "SGVsbG8gV29ybGQh" |
|
console.log('====================='); |
|
// Decode the String |
|
var decodedString = jwpStdb.decode(string); |
|
console.log(decodedString); |
|
var res = decodedString.replace(' ', ''); |
|
console.log(res); |
|
console.log(decodedString.length); |
|
console.log(res.length); |
|
console.log(typeof decodedString); |
|
JSON.parse(res, function(k, v) { |
|
if (k==='user_id'){ |
|
console.log(v) // return the unchanged property value. |
|
} |
|
}); |
|
} |
|
|
|
|
|
</script> |
|
</html>
|
|
|