Mensagens criptografadas
Publicado por Buckminster em 08/01/2023
[ Hits: 2.563 ]
<!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>
Use o Google PageSpeed Insights para verificar um site
Resolvendo o problema de acentuação em Português no VIM
Instalar a última versão do PostgreSQL no Lunix mantendo atualizado
Como corrigir erros de acentuação em códigos HTML, PHP ou JavaScript
Comandos rápidos para Mozilla/Firefox
JavaScript - converter uma array para valores únicos
Can I use - Checar compatibilidade de comandos HTML5, CSS, JavaScript e outros
Javascript - pegar um elemento aleatório de uma lista
Papagaiando o XFCE com temas e recursos
WhatsApp com Chamadas no Linux via Waydroid
XFCE - quase um Gnome ou Plasma mas muito mais leve
LXQT - funcional para máquinas pererecas e usuários menos exigentes
Como cortar as partes de um vídeo com passagens de áudio em branco
Tiling automático no KDE Plasma
SNMP Scan no OCS Inventory só funciona com HTTPS corretamente configurado
Links importantes de usuários do vol (4)
GOG confirma suporte oficial ao sistema Linux: "o trabalho começo... (2)
Para os fãs de DOOM, um vídeo do Romero (com dublagem em pt-br disponí... (2)









