
Framework de criptografia evolucionária baseado em complexidade escalável ao longo do tempo

Focado em proteger dados altamente sensíveis, o temcrypt é um mecanismo avançado de criptografia evolutiva de dados em múltiplas camadas que oferece complexidade escalável ao longo do tempo e é resistente a ataques comuns de força bruta.
Você pode criar suas próprias aplicações, scripts e automações ao implantá-lo.
Descubra o que temcrypt significa, os recursos e a inspiração que me levaram a criá-lo e muito mais. LEIA O DOCUMENTO DE CONHECIMENTO. Isso é muito importante para você.
temcrypt é compatível com Node.js v18 ou superior e navegadores web modernos, permitindo que você o use em vários ambientes.
As únicas dependências que o temcrypt usa são crypto-js para lidar com algoritmos de criptografia como AES-256, SHA-256 e alguns codificadores, e fs é usado para manipulação de arquivos com Node.js.
Para usar o temcrypt, você precisa ter Node.js instalado. Então, você pode instalar o temcrypt usando npm:
npm install temcrypt
depois disso, importe-o em seu código da seguinte forma:
const temcrypt = require("temcrypt");
Inclui um recurso de auto-instalação para suas dependências, para que você não precise se preocupar em instalá-las manualmente. Basta executar a biblioteca temcrypt.js e as dependências serão instaladas automaticamente e então chamá-la em seu código; isso foi feito para ser portátil:
node temcrypt.js
Alternativamente, você pode usar o temcrypt diretamente no navegador incluindo a seguinte tag script:
<script src="temcrypt.js"></script>
ou minificado:
<script src="temcrypt.min.js"></script>
Você também pode chamar a biblioteca em seu site ou aplicação web a partir de uma CDN:
<script src="https://cdn.jsdelivr.net/gh/jofpin/temcrypt/temcrypt.min.js"></script>
temcrypt fornece funções como encrypt e decrypt para proteger e divulgar suas informações com segurança.
Parâmetros
dataString (string): Os dados de string para criptografar.dataFiles (string): O caminho do arquivo para criptografar. Forneça dataString ou dataFiles.mainKey (string): A chave principal (privada) para criptografia.extraBytes (number, opcional): Bytes adicionais para adicionar à criptografia. É um parâmetro opcional usado no processo de criptografia temcrypt. Permite adicionar bytes extras aos dados criptografados, aumentando a complexidade da criptografia, o que requer mais poder de processamento para descriptografar. Também serve para fazer com que padrões se percam alterando o peso da criptografia.Retornos
status (boolean): true para indicar descriptografia bem-sucedida.hash (string): O hash único gerado para verificar a legitimidade dos dados criptografados.dataString (string) ou dataFiles: A string descriptografada ou o caminho do arquivo descriptografado, dependendo da entrada.updatedEncryptedData (string): Os dados criptografados atualizados após a descriptografia. Os dados criptografados atualizados após a descriptografia. Cada vez que a criptografia é descriptografada, a saída é atualizada, porque a mainKey muda sua ordem e a nova data da última descriptografia é salva.creationDate (string): A data de criação dos dados criptografados.lastDecryptionDate (string): A data da última descriptografia bem-sucedida dos dados.dataString for fornecida:
hash (string): O hash único gerado para verificar a legitimidade dos dados criptografados.Aqui estão alguns exemplos de como usar o temcrypt. Observe que ao criptografar, você deve inserir uma chave e salvar a hora e o minuto em que criptografou a informação. Para descriptografar a informação, você deve usar a mesma chave principal na mesma hora e minuto em dias subsequentes:
const dataToEncrypt = "Sensitive data";
const mainKey = "your_secret_key"; // Insert your custom key
const encryptedData = temcrypt.encrypt({
dataString: dataToEncrypt,
mainKey: mainKey
});
console.log(encryptedData);
const encryptedData = "..."; // Encrypted data obtained from the encryption process
const mainKey = "your_secret_key";
const decryptedData = temcrypt.decrypt({
dataString: encryptedData,
mainKey: mainKey
});
console.log(decryptedData);
Criptografar um Arquivo:
Para criptografar um arquivo usando temcrypt, você pode usar a função encrypt com o parâmetro dataFiles. Aqui está um exemplo de como criptografar um arquivo e obter o resultado da criptografia:
const temcrypt = require("temcrypt");
const filePath = "path/test.txt";
const mainKey = "your_secret_key";
const result = temcrypt.encrypt({
dataFiles: filePath,
mainKey: mainKey,
extraBytes: 128 // Optional: Add 128 extra bytes
});
console.log(result);
Neste exemplo, substitua 'test.txt' pelo caminho real do arquivo que você deseja criptografar e defina 'your_secret_key' como a chave principal para a criptografia. O objeto result conterá os detalhes da criptografia, incluindo o hash único, a chave principal, a chave de tempo e o caminho do arquivo criptografado.
Descriptografar um Arquivo:
Para descriptografar um arquivo que foi previamente criptografado com temcrypt, você pode usar a função decrypt com o parâmetro dataFiles. Aqui está um exemplo de como descriptografar um arquivo e obter o resultado da descriptografia:
const temcrypt = require("temcrypt");
const filePath = "path/test.txt.trypt";
const mainKey = "your_secret_key";
const result = temcrypt.decrypt({
dataFiles: filePath,
mainKey: mainKey
});
console.log(result);
Neste exemplo, substitua 'path/test.txt.trypt' pelo caminho real do arquivo criptografado e defina 'your_secret_key' como a chave principal para descriptografia. O objeto result conterá o status da descriptografia e os dados descriptografados, se bem-sucedido.
Lembre-se de fornecer a chave principal correta usada durante a criptografia para descriptografar o arquivo com sucesso, na mesma hora e minuto exatos em que foi criptografado. Se a chave principal estiver errada, o arquivo foi adulterado ou a hora está errada, o status da descriptografia será false e os dados descriptografados não estarão disponíveis.
temcrypt fornece funções utils para realizar operações adicionais além da criptografia e descriptografia. Essas funções utilitárias são projetadas para melhorar a funcionalidade e usabilidade.
Lista de Funções:
Abaixo, você pode ver os detalhes e como implementar seus usos.
Atualizar MainKey:
A função utilitária changeKey permite alterar a mainKey usada para criptografar os dados enquanto mantém os dados criptografados intactos. Isso é útil quando você deseja aumentar a segurança dos seus dados criptografados ou atualizar a mainKey periodicamente.
dataFiles (opcional): O caminho para o arquivo que foi criptografado usando temcrypt.dataString (opcional): A string criptografada que foi gerada usando temcrypt.mainKey (string): A mainKey atual usada para criptografar os dados.newKey(string): A nova mainKey que substituirá a mainKey atual.const temcrypt = require("temcrypt");
const filePath = "test.txt.trypt";
const currentMainKey = "my_recent_secret_key";
const newMainKey = "new_recent_secret_key";
// Update mainKey for the encrypted file
const result = temcrypt.utils({
changeKey: {
dataFiles: filePath,
mainKey: currentMainKey,
newKey: newMainKey
}
});
console.log(result.message);
Verificar Integridade dos Dados:
A função utilitária check permite verificar a integridade dos dados criptografados usando temcrypt. Ela verifica se um arquivo ou uma string são dados criptografados temcrypt válidos.
dataFiles (opcional): O caminho para o arquivo que você deseja verificar.dataString (opcional): A string criptografada que você deseja verificar.const temcrypt = require("temcrypt");
const filePath = "test.txt.trypt";
const encryptedString = "..."; // Encrypted string generated by temcrypt
// Check the integrity of the encrypted File
const result = temcrypt.utils({
check: {
dataFiles: filePath
}
});
console.log(result.message);
// Check the integrity of the encrypted String
const result2 = temcrypt.utils({
check: {
dataString: encryptedString
}
});
console.log(result2.message);
Verificar Hash:
A função utilitária verify permite verificar a integridade dos dados criptografados usando seu valor hash. Verifica se a saída dos dados criptografados corresponde ao valor hash fornecido.
hash (string): O valor hash a ser verificado.dataFiles (opcional): O caminho para o arquivo cujo hash você deseja verificar.dataString (opcional): A string criptografada cujo hash você deseja verificar.const temcrypt = require("temcrypt");
const filePath = "test.txt.trypt";
const hashToVerify = "..."; // The hash value to verify
// Verify the hash of the encrypted File
const result = temcrypt.utils({
verify: {
hash: hashToVerify,
dataFiles: filePath
}
});
console.log(result.message);
// Verify the hash of the encrypted String
const result2 = temcrypt.utils({
verify: {
hash: hashToVerify,
dataString: encryptedString
}
});
console.log(result2.message);
A tabela a seguir apresenta os códigos de erro importantes e suas mensagens de erro correspondentes usadas pelo temcrypt para indicar vários cenários de erro.
Confira o diretório examples para exemplos de uso mais detalhados.
⚠️ RECOMENDAÇÃO
O tamanho da criptografia de uma string ou arquivo deve ser inferior a 16 KB (quilobytes). Se for maior, você deve ter poder computacional suficiente para descriptografá-lo. Caso contrário, seu computador pessoal excederá o tempo necessário para encontrar a combinação correta da chave principal e a formação de criptografia adequada, e não conseguirá descriptografar a informação.
ℹ️ DICAS
- Com o temcrypt, você só pode descriptografar suas informações em dias posteriores com a chave que inseriu na mesma hora e minuto em que criptografou.
- Foque no tempo; é recomendado iniciar a descriptografia entre os primeiros 2 a 10 segundos, assim você terá vantagem para gerar a formação correta da chave.
O conteúdo deste projeto em si é licenciado sob a licença Creative Commons Atribuição 3.0, e o código-fonte subjacente usado para formatar e exibir esse conteúdo é licenciado sob a licença MIT.
Copyright (c) 2023 by Jose Pino
mainKey (string): A chave principal (privada) usada para criptografia.timeKey (string): A chave de tempo (privada) da criptografia.dataString (string): A string criptografada.extraBytes (number, opcional): Os bytes extras usados para criptografia.dataFiles for fornecida:
hash (string): O hash único gerado para verificar a legitimidade dos dados criptografados.mainKey (string): A chave principal usada para criptografia.timeKey (string): A chave de tempo da criptografia.dataFiles (string): O caminho do arquivo criptografado.extraBytes (number, opcional): Os bytes extras usados para criptografia.status (boolean): false para indicar falha na descriptografia.error_code (number): Um código de erro indicando o motivo da falha na descriptografia.message (string): Uma mensagem de erro descritiva explicando a falha na descriptografia.| Código | Mensagem de Erro | Descrição |
|---|
| 420 | Tempo limite de descriptografia excedido | O processo de descriptografia levou mais tempo que o limite permitido. |
| 444 | Falha na descriptografia | O processo de descriptografia encontrou um erro. |
| 777 | Nenhum dado fornecido | Nenhum dado foi fornecido para a operação. |
| 859 | String criptografada temcrypt inválida | A string fornecida não é uma string criptografada temcrypt válida. |