Mensagens criptografadas
Publicado por Buckminster em 08/01/2023
[ Hits: 1.772 ]
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta http-equiv="X-UA-Compatible" content="ie=edge"> <title>ENIGMA XOR MACHINE</title> <style> .contover{ width: 50%; position:relative; margin-left:auto; margin-right:auto; margin-top:10px; } .pcarreira { text-indent: 50px; text-align: justify; } </style> <script> function encrypt(str, pwd) { if(pwd === null || pwd.length <= 0) { alert("Por favor entre com a senha para encriptar a mensagem."); return null; } var prand = ""; for(var i=0; i<pwd.length; i++) { prand += pwd.charCodeAt(i).toString(); } var sPos = Math.floor(prand.length / 5); var mult = parseInt(prand.charAt(sPos) + prand.charAt(sPos*2) + prand.charAt(sPos*3) + prand.charAt(sPos*4) + prand.charAt(sPos*5)); var incr = Math.ceil(pwd.length / 2); var modu = Math.pow(2, 31) - 1; if(mult < 2) { alert("Algoritmo não pode encontrar um hash compatível. Por favor escolha outra senha. Consideracoes possíveis escolha uma senha mais difícil ou maior."); return null; } var salt = Math.round(Math.random() * 1000000000) % 100000000; prand += salt; while(prand.length > 10) { prand = (parseInt(prand.substring(0, 10)) + parseInt(prand.substring(10, prand.length))).toString(); } prand = (mult * prand + incr) % modu; var enc_chr = ""; var enc_str = ""; for(var i=0; i<str.length; i++) { enc_chr = parseInt(str.charCodeAt(i) ^ Math.floor((prand / modu) * 255)); if(enc_chr < 16) { enc_str += "0" + enc_chr.toString(16); } else enc_str += enc_chr.toString(16); prand = (mult * prand + incr) % modu; } salt = salt.toString(16); while(salt.length < 8)salt = "0" + salt; enc_str += salt; return enc_str; } function decrypt(str, pwd) { if(str === null || str.length < 8) { alert("Não foi possível desencriptar pois a mensagem e muito pequena os cálculos retornam um numero negativo."); return; } if(pwd === null || pwd.length <= 0) { alert("Por favor coloque a senha para desencriptar a mensagem."); return; } var prand = ""; for(var i=0; i<pwd.length; i++) { prand += pwd.charCodeAt(i).toString(); } var sPos = Math.floor(prand.length / 5); var mult = parseInt(prand.charAt(sPos) + prand.charAt(sPos*2) + prand.charAt(sPos*3) + prand.charAt(sPos*4) + prand.charAt(sPos*5)); var incr = Math.round(pwd.length / 2); var modu = Math.pow(2, 31) - 1; var salt = parseInt(str.substring(str.length - 8, str.length), 16); str = str.substring(0, str.length - 8); prand += salt; while(prand.length > 10) { prand = (parseInt(prand.substring(0, 10)) + parseInt(prand.substring(10, prand.length))).toString(); } prand = (mult * prand + incr) % modu; var enc_chr = ""; var enc_str = ""; for(var i=0; i<str.length; i+=2) { enc_chr = parseInt(parseInt(str.substring(i, i+2), 16) ^ Math.floor((prand / modu) * 255)); enc_str += String.fromCharCode(enc_chr); prand = (mult * prand + incr) % modu; } return enc_str; } // End --> </script> </head> <body> <form name="box"> <center> <div class="contover"> <p class="pcarreira">Toda mensagem para ser criptografada deve ser colocada no primeiro campo, digite uma senha no campo e clique Encrypt, a mensagem será encriptada no segundo campo, copie e cole na página desejada.</p> <p class="pcarreira">Para desencriptar coloque a mensagem recebida no segundo campo e digite a senha recebida, clique Decrypt e no campo acima aparecerá a mensagem enviada. Caso esteja ilegível, repita o processo prestando atenção na senha.</p> </div> <table cellpadding=0 cellspacing=0 border=0> <tr> <td colspan=3> <textarea cols=40 rows=5 wrap=virtual name=ipt placeholder="Coloque sua mensagem aqui"></textarea> </td> </tr> <tr height=50> <td valign="top"> <input type="button" onClick="document.box.opt.value= encrypt(document.box.ipt.value, document.box.pwd.value);" value="Encrypt"> </td> <td align="center" valign="center"> <label>Senha</label><br> <input type="password" name="pwd" value=""> </td> <td align="right" valign="bottom" style="padding-bottom:4px;"> <input type="button" onClick="document.box.ipt.value= decrypt(document.box.opt.value, document.box.pwd.value);" value="Decrypt"> </td> </tr> <tr> <td colspan=3> <textarea cols=40 rows=5 wrap=virtual name=opt></textarea> </td> </tr> </table> <input type="reset" value="Limpar"> </center> </form> </body> </html>
Leitor de Teclas em Javascript e PHP
Configuração básica do IPtables
JavaScript - converter uma array para valores únicos
Como corrigir erros de acentuação em códigos HTML, PHP ou JavaScript
Sistemas de conteúdo em Webserver de projeto pessoal em ambiente SourceForge
DOOM mais fácil que atacar imp pelas costas
Atualizar o macOS no Mac - Opencore Legacy Patcher
Crie alias para as tarefas que possuam longas linhas de comando - bash e zsh
Criando um gateway de internet com o Debian
Configuração básica do Conky para mostrar informações sobre a sua máquina no Desktop
Instalando Discord no Debian 12
Instalando e usando o Dconf Editor, o "regedit" para Linux
Existe algum software free linux para controle de inventários de máqui... (2)
Ver computadores e similares conectados na rede doméstica pelo nome (1)