Mensagens criptografadas
Publicado por Buckminster em 08/01/2023
[ Hits: 2.420 ]
<!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
Estrutura de recuo PHP/Apache para não acessarem arquivos pela URI (barra de endereços)
Resolvendo o problema de acentuação em Português no VIM
Configuração básica do IPtables
Resolver algumas mensagens de erro do SSH
Sites e grupos para encontrar emprego de TI
Javascript - pegar um elemento aleatório de uma lista
Como corrigir erros de acentuação em códigos HTML, PHP ou JavaScript
Codificação HEXADECIMAL para HTML
Leitor de Teclas em Javascript e PHP
IA Turbina o Desktop Linux enquanto distros renovam forças
Como extrair chaves TOTP 2FA a partir de QRCODE (Google Authenticator)
Linux em 2025: Segurança prática para o usuário
Desktop Linux em alta: novos apps, distros e privacidade marcam o sábado
IA chega ao desktop e impulsiona produtividade no mundo Linux
Atualizando o Fedora 42 para 43
Como saber se o seu e-mail já teve a senha vazada?
Como descobrir se a sua senha já foi vazada na internet?
Mint Xfce não mantém a conexão no wi-fi (2)
Problemas com Driver NVIDIA (5)
Warcraft II Remastered no Linux? (8)









