Phiên bản đầy đủ: jsB@nk » Bảo mật » Mã hóa » QwertyShifter
URL: https://www.javascriptbank.com/qwertyshifter.html
Để mã hay giải mã hóa một đoạn văn bản nào đó, bạn cần phải nhập nó vào cùng với đơn vị">đơn vị mã hóa để hiệu ứng thực hiện. Thực chất hiệu ứng JavaScript này sẽ dời bit đoạn văn bản sang vị trí bạn chỉ định.
Phiên bản đầy đủ: jsB@nk » Bảo mật » Mã hóa » QwertyShifter
URL: https://www.javascriptbank.com/qwertyshifter.html
<script type="text/javascript">var qs = new QwertyShifter('right', 1);window.onload = function(){ var f = document.forms['qsForm']; f.direction.value = qs.dir; f.radix.value = qs.rad;}function qs_reset(){ var f = document.forms['qsForm']; var d = f.direction.value.toLowerCase(); if (d != 'left' && d != 'right') { alert("Invalid Direction. Must be 'left' or 'right'."); return; } var r = parseInt(f.radix.value); if (isNaN(r) || r < 1 || r >= qs.qu.length) { alert("Invalid Radix. Must be > 0 and < " + qs.qu.length); return; } qs.reset(d, r); alert("QwertyShifter\n\nNew settings accepted.");}function encode(){ var f = document.forms['qsForm']; f.shifted.value = qs.encode(f.original.value);}function decode(){ var f = document.forms['qsForm']; f.original.value = qs.decode(f.shifted.value);}//------------------------------------------------------// QwertyShifter - Object Prototype and Public Methodsfunction QwertyShifter(direction, radix){ this.dir = direction; // direction to shift: 'left' or 'right' this.rad = radix; // number of chars to shift this.ql = new Array('`','1','2','3','4','5','6','7','8','9','0','-','=','q','w','e','r','t','y','u','i','o','p','[',']','\\','a','s','d','f','g','h','j','k','l',';',"'",'z','x','c','v','b','n','m',",",'.','/',' '); // lower case and unshifted chars this.qu = new Array('~','!','@','#','$','%','^','&','*','(',')','_','+','Q','W','E','R','T','Y','U','I','O','P','{','}','|', 'A','S','D','F','G','H','J','K','L',':','"','Z','X','C','V','B','N','M',"<",'>','?'); // upper case and shifted chars}QwertyShifter.prototype.reset = function(direction, radix){ this.dir = direction; this.rad = radix;}QwertyShifter.prototype.getChr = function(c, act){ var i, qLen=0, qBuf; for (i = 0; i < this.ql.length; ++i) { if (this.ql[i] == c) { qBuf = this.ql; qLen = this.ql.length; break; // out of 'for' loop } } if (!qLen) { for (i = 0; i < this.qu.length; ++i) { if (this.qu[i] == c) { qBuf = this.qu; qLen = this.qu.length; break; // out of 'for' loop } } } if (!qLen) { return c; } if ((act == 'enc' && this.dir == 'right') || (act == 'dec' && this.dir == 'left')) { // shift right if (i + this.rad >= qLen) { i = (i + this.rad) - qLen; // wrap to beginning } else { i += this.rad; } } else if ((act == 'enc' && this.dir == 'left') || (act == 'dec' && this.dir == 'right')) { // shift left if (i - this.rad < 0) { i = qLen + (i - this.rad); // wrap to end } else { i -= this.rad; } } return qBuf[i];}QwertyShifter.prototype.encode = function(s){ var i, buf=''; for (i = 0; i < s.length; ++i) { buf += this.getChr(s.charAt(i), 'enc'); } return buf;}QwertyShifter.prototype.decode = function(s){ var i, buf=''; for (i = 0; i < s.length; ++i) { buf += this.getChr(s.charAt(i), 'dec'); } return buf;}</script><!-- This script downloaded from www.JavaScriptBank.com Come to view and download over 2000+ free javascript at www.JavaScriptBank.com-->
<form name="qsForm" onsubmit="return false"><p><b>Original:</b></p><textarea name="original" rows="8" cols="60"></textarea><input type="button" value="Encode" onclick="encode()"><p><b>QWERTY-Shifted:</b></p><textarea name="shifted" rows="8" cols="60"></textarea><input type="button" value="Decode" onclick="decode()"><p><b>Settings:</b></p><p>Shift Direction <input name="direction" type="text" value="" size="20"></p><p>Shift Amount <input name="radix" type="text" value="" size="20"></p><p><input type="button" value="SET" onclick="qs_reset()"></p></form><!-- This script downloaded from www.JavaScriptBank.com Come to view and download over 2000+ free javascript at www.JavaScriptBank.com-->