Mensagens criptografadas
Publicado por Buckminster em 08/01/2023
[ Hits: 2.511 ]
<!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>
Usar o WoeUSB-ng no Debian para criar um pendrive bootável
Quantidade de caracteres suportados na barra de endereços dos navegadores
Instalar Google Chrome no Debian e derivados
Instalar driver Nvidia no Debian 13
Bloqueando objetos Flash de páginas
Cursos grátis na área de programação com certificado
Javascript - pegar um elemento aleatório de uma lista
Copiando texto para área de transferência em JavaScript
Codificação HEXADECIMAL para HTML
Bluefin - A nova geração de ambientes de trabalho Linux
Como atualizar sua versão estável do Debian
Cirurgia para acelerar o openSUSE em HD externo via USB
Pós-instalação do elementary OS 8.1
Quer auto-organizar janelas (tiling) no seu Linux? Veja como no Plasma 6 e no Gnome
Copiando caminho atual do terminal direto para o clipboard do teclado
Conky não mostra temperaturas da CPU no notebook (8)
archlinux resolução abaixou após atualização (18)
Estou com um problema no meu desktop do ubuntu (2)
Não estou conseguindo fazer funcionar meu Postfix na versão 2.4 no Deb... (0)









