Algorítimo de criptografia... qual usar?
Amigos,
Há algum tempo venho pensando em adotar algumas práticas mais profissionais de segurança sobre os dados das minhas aplicações...
Procurei por componentes de criptografia e consegui alguns, mas não entendo nada (no sentido literal da palavra) sobre o assunto e o componente que me parece ser o melhor é capaz de trabalhar com diversos algorítimos e não faço idéia de qual eh o melhor...
Estes são os algorítimos disponíveis neste componente (Free com Source) :
Vcs poderiam ajudar-me nesta escolha ou indicar onde encontro material sobre o assunto para que eu possa estudar e optar por um deles?
Desde já agradeço.
[]´s
Vinicius.
Há algum tempo venho pensando em adotar algumas práticas mais profissionais de segurança sobre os dados das minhas aplicações...
Procurei por componentes de criptografia e consegui alguns, mas não entendo nada (no sentido literal da palavra) sobre o assunto e o componente que me parece ser o melhor é capaz de trabalhar com diversos algorítimos e não faço idéia de qual eh o melhor...
Estes são os algorítimos disponíveis neste componente (Free com Source) :
Vcs poderiam ajudar-me nesta escolha ou indicar onde encontro material sobre o assunto para que eu possa estudar e optar por um deles?
Desde já agradeço.
[]´s
Vinicius.
Vinicius2k
Curtidas 0
Respostas
Cebikyn
02/05/2004
Depende da segurança que vc quer ter... o Rijndael foi adotado como padrão de criptografia avançada (Advanced Encryption Standard - AES), e é bem eficiente, esse algoritmo belga é o mesmo do Winzip 9.0. O Blowfish é rápido e forte, foi criado por Bruce Schneier, um especialista no assunto bastante conceituado. O 3 DES é um algoritmo do governo americano que foi testado durante anos e não apresentou falhas, consiste em usar um mesmo algoritmo (DES) três vezes com chaves diferentes.
A segunda palheta de componentes aparentemente contém apenas componentes para estrair o Hash de arquivos, como o MD4, MD5 e SHA, o Hash serve para identificar se o arquivo (ou mesmo um texto) sofreu alguma modificação (no caso de textos, é como são comparadas as senhas, afinal um programa decente não compara a senha digitada com a armazenada, ele armazena o Hash, ou checksum, e compara ele com o hash do que foi digitado). E é claro que não é possível gerar o arquivo ou texto a partir do Hash.
Os demais algoritmos eu não conheço, mas posso assegurar que usando Rijndael ou blowfish seus arquivos estarão seguros.
A segunda palheta de componentes aparentemente contém apenas componentes para estrair o Hash de arquivos, como o MD4, MD5 e SHA, o Hash serve para identificar se o arquivo (ou mesmo um texto) sofreu alguma modificação (no caso de textos, é como são comparadas as senhas, afinal um programa decente não compara a senha digitada com a armazenada, ele armazena o Hash, ou checksum, e compara ele com o hash do que foi digitado). E é claro que não é possível gerar o arquivo ou texto a partir do Hash.
Os demais algoritmos eu não conheço, mas posso assegurar que usando Rijndael ou blowfish seus arquivos estarão seguros.
GOSTEI 0
Maxadens
02/05/2004
Me interessei pelos componentes. sera que poderia passar o link de onde adquiriu estes componentes?
Obrigado!
Ronaldo
Obrigado!
Ronaldo
GOSTEI 0
Vinicius2k
02/05/2004
Obrigado Cebis ! Estou estudando agora como utilizá-los.
Vc poderia me explicar apenas mais duas coisas :
[list:0a775ae649][*:0a775ae649]o tamanho do bloco e tamanho máximo da chave influenciam diretamente sobre a velocidade de processamento do algorítimo e na segurança ? por exemplo o Blowfish tem BlockSize de 64 e MaxKeySize de 448, já o Rijndael tem BlockSize de 128 e MaxKeySize de 256...
[*:0a775ae649]na mesma linha de raciocício da questão anterior, porém sobre os hashes... o tamanho do hash influencia? o HashSize do MD5 é 128, já o do SHA varia de 160 a 512... de forma leiga suspeito que o SHA seja ´melhor´, digamos assim, do que o MD5, mas me parece que o MD5 é mais utilizado...[/list:u:0a775ae649]
Mais uma vez obrigado.
T+
Vc poderia me explicar apenas mais duas coisas :
[list:0a775ae649][*:0a775ae649]o tamanho do bloco e tamanho máximo da chave influenciam diretamente sobre a velocidade de processamento do algorítimo e na segurança ? por exemplo o Blowfish tem BlockSize de 64 e MaxKeySize de 448, já o Rijndael tem BlockSize de 128 e MaxKeySize de 256...
[*:0a775ae649]na mesma linha de raciocício da questão anterior, porém sobre os hashes... o tamanho do hash influencia? o HashSize do MD5 é 128, já o do SHA varia de 160 a 512... de forma leiga suspeito que o SHA seja ´melhor´, digamos assim, do que o MD5, mas me parece que o MD5 é mais utilizado...[/list:u:0a775ae649]
Mais uma vez obrigado.
T+
GOSTEI 0
Vinicius2k
02/05/2004
Me interessei pelos componentes. sera que poderia passar o link de onde adquiriu estes componentes?
Claro ! http://www.torry.net/vcl/security/strong/dcpcrypt.zip
T+
GOSTEI 0
Cebikyn
02/05/2004
...o tamanho do bloco e tamanho máximo da chave influenciam diretamente sobre a velocidade de processamento do algorítimo e na segurança ? por exemplo o Blowfish tem BlockSize de 64 e MaxKeySize de 448, já o Rijndael tem BlockSize de 128 e MaxKeySize de 256...
O tamanho do bloco influencia na velocidade, quanto maior o bloco, mais memória ele vai consumir e mais rápido vai ser o processamento (e não sei se acontece nos seus componentes, mas em algumas implementações, pode ocorrer de alguns bytes finais do arquivo não serem criptografados por não formarem um bloco completo). A chave também influencia na segurança (maior chave -> maior segurança). Mas vc não precisa se preocupar muito com a velocidade, que na maioria dos algoritmos atuais é muito boa.
...na mesma linha de raciocício da questão anterior, porém sobre os hashes... o tamanho do hash influencia? o HashSize do MD5 é 128, já o do SHA varia de 160 a 512... de forma leiga suspeito que o SHA seja ´melhor´, digamos assim, do que o MD5, mas me parece que o MD5 é mais utilizado...
Influencia, mas é uma coisa com que vc não deve se preocupar, a chance de vc achar dois arquivos com o mesmo Hash no MD5 é de 1 em 2^64 (dois elevado a 64, algo da ordem de quintilhões), já a de achar um arquivo que tenha um certo hash é de 1 em 2^128 (passa de 30 zeros...). E o SHA é uma variação melhorada do MD4, e algumas pessoas não confiam muito nele (não há evidencias de que não se possa confiar), por isso o MD5 é o mais popular. E realmente o hash maior dá uma segurança maior.
GOSTEI 0
Vinicius2k
02/05/2004
Mais uma vez, obrigado Cebis !
Precisando, pode contar ! :wink:
T+
Precisando, pode contar ! :wink:
T+
GOSTEI 0
Edukobra
02/05/2004
Pessoal, baixei os componentes, mas não consegui usa-los.
Alguém poderia me dizer um exemplo simples de como criptografar por exemplo um edit, ou dbedit ?
Obrigado.
Alguém poderia me dizer um exemplo simples de como criptografar por exemplo um edit, ou dbedit ?
Obrigado.
GOSTEI 0
Vinicius2k
02/05/2004
Bem, tbm estou estudando sua utilização e melhor do que me arriscar a lhe dar um exemplo é sugerir-lhe que faça como eu...
Leia atentamente a documentação (pasta docs no diretorio de instalação) que tbm conta com alguns exemplos de utilização.
T+
Leia atentamente a documentação (pasta docs no diretorio de instalação) que tbm conta com alguns exemplos de utilização.
T+
GOSTEI 0
Edukobra
02/05/2004
Vi os exemplos e quando fui rodar percebi alguns bugs, como não entendo muito bem peço a ajuda de vcs.
Vcs detectaram algum bug ?
Vcs detectaram algum bug ?
GOSTEI 0
Vinicius2k
02/05/2004
Amigos,
Passei esta semana fazendo downloads e testando alguns componentes de cryptografia, basicamente, todos os que estão no Torry e mais alguns...
Acredito ter chegado à conclusão de qual componente usar : LockBox ( http://www.torry.net/vcl/security/strong/tplockbox.zip ) me parece um projeto compentente e estável (versão 2.07 e OpenSource), e não faz os ´milhares´ de algorítimos que o DCPCrypt (que foi objeto deste tópico) faz, mas faz o sufiente : Hashes MD5, SHA-1, LMD e ELF , e os Ciphers DES, 3DES, Blowfish, Rijndael e RSA... menos opções e mais bem feitas, na minha opinião.
É muito simples de utilizar e muito rápido. Instala sem problemas em todos os Delphi, C++ e Kylix (ao contrário do DCPCrypt que gera vários warnings na instalação no Delphi 7) e é VCL/CLX. Acho que peca na documentação, mas os exemplos são bem claros.
Sobre os bugs encontrados pelo colega edukobra no DCPCrypt, encontrei vários e desisti dele logo no início da semana.
Espero ter contribuído com os colegas que pretendem utilizar alguma forma de cryptografia.
Abraços.
Vinicius
Passei esta semana fazendo downloads e testando alguns componentes de cryptografia, basicamente, todos os que estão no Torry e mais alguns...
Acredito ter chegado à conclusão de qual componente usar : LockBox ( http://www.torry.net/vcl/security/strong/tplockbox.zip ) me parece um projeto compentente e estável (versão 2.07 e OpenSource), e não faz os ´milhares´ de algorítimos que o DCPCrypt (que foi objeto deste tópico) faz, mas faz o sufiente : Hashes MD5, SHA-1, LMD e ELF , e os Ciphers DES, 3DES, Blowfish, Rijndael e RSA... menos opções e mais bem feitas, na minha opinião.
É muito simples de utilizar e muito rápido. Instala sem problemas em todos os Delphi, C++ e Kylix (ao contrário do DCPCrypt que gera vários warnings na instalação no Delphi 7) e é VCL/CLX. Acho que peca na documentação, mas os exemplos são bem claros.
Sobre os bugs encontrados pelo colega edukobra no DCPCrypt, encontrei vários e desisti dele logo no início da semana.
Espero ter contribuído com os colegas que pretendem utilizar alguma forma de cryptografia.
Abraços.
Vinicius
GOSTEI 0
Cebikyn
02/05/2004
Acredito ter chegado à conclusão de qual componente usar : LockBox ( http://www.torry.net/vcl/security/strong/tplockbox.zip ) me parece um projeto compentente e estável (versão 2.07 e OpenSource)
Eu uso esse, mas ele não foi sempre Open Source, ele começou como um projeto comercial, da Turbo Power (que fechou...), daí virou Open Source, o site onde pode ser obtida a última versão (por enquanto ainda é a 2.07) e também onde estão os fóruns dos componentes é: http://sourceforge.net/projects/tplockbox
GOSTEI 0
Vinicius2k
02/05/2004
o site onde pode ser obtida a última versão (por enquanto ainda é a 2.07) e também onde estão os fóruns dos componentes é: http://sourceforge.net/projects/tplockbox
Obrigado por mais essa dica Cebis ! com ela percebi q falei besteira aqui...
Acho que peca na documentação, mas os exemplos são bem claros.
Ele tem uma documentação excelente... T+
GOSTEI 0
Anderson_blumenau
02/05/2004
aí cebis, tens algum material bom sobre o assunto pra me disponibilzar?
GOSTEI 0
Elias Jr
02/05/2004
Saudações gente,
olá Vinicius, também estou partindo pra criptografia em minhas aplicações e, assim como você, estou utilizando a paleta LockBox. Estou realizando testes com os componentes MD5 e RSA (achei o RSA melhor mas é mais complicado). O Hash MD5 é simples, só estou com problemas para fazer o reconhecimento das senhas (estou testando 20 senhas de tamanhos e caracteres variados numa tabela). Quanto à algum conteúdo, achei alguns exemplos legais de MD5 e RSA no site do ActiveDelphi. Basta dar uma procurada por lá. Espero poder contar com vocês pra tirar qualquer dúvida e ajudar no que for preciso.
olá Vinicius, também estou partindo pra criptografia em minhas aplicações e, assim como você, estou utilizando a paleta LockBox. Estou realizando testes com os componentes MD5 e RSA (achei o RSA melhor mas é mais complicado). O Hash MD5 é simples, só estou com problemas para fazer o reconhecimento das senhas (estou testando 20 senhas de tamanhos e caracteres variados numa tabela). Quanto à algum conteúdo, achei alguns exemplos legais de MD5 e RSA no site do ActiveDelphi. Basta dar uma procurada por lá. Espero poder contar com vocês pra tirar qualquer dúvida e ajudar no que for preciso.
GOSTEI 0
Vinicius2k
02/05/2004
Tópico bem antigo esse... :D
Olá Elias, eu estou trabalhando, ainda com o LockBox, com Hash MD5 e Cipher Rijndael...
Na verdade, pesquisei um pouco na net e fiquei com a indicação do Cebis pq não tive tempo de estudar detalhadamente as outras opções...
Quais os problemas que vc está tendo com o Hash MD5 ? Talvez possamos ajudá-lo...
T+
Olá Elias, eu estou trabalhando, ainda com o LockBox, com Hash MD5 e Cipher Rijndael...
Na verdade, pesquisei um pouco na net e fiquei com a indicação do Cebis pq não tive tempo de estudar detalhadamente as outras opções...
Quais os problemas que vc está tendo com o Hash MD5 ? Talvez possamos ajudá-lo...
T+
GOSTEI 0
Elias Jr
02/05/2004
Olá Vinicius,
meu único problema é que naum estou conseguindo fazer a verificação do hash da senha digitada pelo usuário. Após cadastrar o usuário com a senha já criptografada, o usuário tenta logar-se no sistema mas naum consigo fazer esta confirmação. Você poderia me ajudar nisso? Valeu cara.
meu único problema é que naum estou conseguindo fazer a verificação do hash da senha digitada pelo usuário. Após cadastrar o usuário com a senha já criptografada, o usuário tenta logar-se no sistema mas naum consigo fazer esta confirmação. Você poderia me ajudar nisso? Valeu cara.
GOSTEI 0
Vinicius2k
02/05/2004
Elias,
Vc precisa entender bem as diferenças... um Hash não é um Cipher...
O Hash obtido de uma string, ou arquivo, etc, não pode ser desfeito : o texto nunca volta ao original.
Se vc usou um mecanismo de para hashear a senha cadastrada e gravá-la no banco de dados, vc precisa usar o mesmo mecanismo para hashear o a senha informada e comparar os dois hashes : o gravado e o informado...
É um tipo de validação direfente de quando se usa criptografia...
Não é isso que vc está se confundindo ?
T+
Vc precisa entender bem as diferenças... um Hash não é um Cipher...
O Hash obtido de uma string, ou arquivo, etc, não pode ser desfeito : o texto nunca volta ao original.
Se vc usou um mecanismo de para hashear a senha cadastrada e gravá-la no banco de dados, vc precisa usar o mesmo mecanismo para hashear o a senha informada e comparar os dois hashes : o gravado e o informado...
É um tipo de validação direfente de quando se usa criptografia...
Não é isso que vc está se confundindo ?
T+
GOSTEI 0
Elias Jr
02/05/2004
Elias,
Vc precisa entender bem as diferenças... um Hash não é um Cipher...
O Hash obtido de uma string, ou arquivo, etc, não pode ser desfeito : o texto nunca volta ao original.
Se vc usou um mecanismo de para hashear a senha cadastrada e gravá-la no banco de dados, vc precisa usar o mesmo mecanismo para hashear o a senha informada e comparar os dois hashes : o gravado e o informado...
É um tipo de validação direfente de quando se usa criptografia...
Não é isso que vc está se confundindo ?
T+
Olá cara,
compreendo o que vc falou e é justamente isso que eu estou fazendo...primeiro dou um hash na senha ao cadastrar o usuário e depois pego a string digitada no edit e dou outro hash pra fazer a comparação. Vai aí o código (implementado de um exemplo que peguei):
password := MD5Hash(edsenha.text); if ds.dataset.locate(´nome´,nome, []) = false then begin showmessage(´Registro não encontrado´); exit; end else begin if password = table.FieldByName(´senha´).asstring then begin showmessage(´Senha OK!´); exit; end else showmessage(´Senha Errada!´); exit; end;
Este é só um testezinho que fiz...
GOSTEI 0
Gandalf.nho
02/05/2004
Eu uso atualmente um pacote chamado [b:6ef7167d50]Delphi Encryption Compendium Part I[/b:6ef7167d50] que usa apenas um componente para vários tipos de padrões de criptografia (atualmente 40 Ciphers e 23 Hashs) e é freeware. Um dos lugares onde ele pode ser encontrado é no Torry´s [url]http://www.torry.net/vcl/security/strong/chipher.zip[/url]
Ele vem com um demo bem exemplificado.
Ele vem com um demo bem exemplificado.
GOSTEI 0
Vinicius2k
02/05/2004
Elias,
Exiba num ShowMessage, por exemplo, o hash da senha digitada e o conteúdo salvo no BD...
Meu palpite é que o texto que originou o hash salvo é diferente do texto que origina o hash digitado...
Propriedades Charcase dos TEdits originais e digitado, por exemplo, pode fazer os hashs serem completamente diferentes...
Outra possibilidade é que vc tenha no BD dois nomes iguais, com senhas diferentes... o locate encontrará o primeiro, então a comparação pode não ser bem sucedida, dependendo da senha digitada...
Se não for isso, esta função q vc está utilizando (MD5Hash) eu nunca utilizei... e não sei se seria sua, mas esta é a minha função para hashear strings com o MD5, baseada nas units do LockBox :
T+
Exiba num ShowMessage, por exemplo, o hash da senha digitada e o conteúdo salvo no BD...
Meu palpite é que o texto que originou o hash salvo é diferente do texto que origina o hash digitado...
Propriedades Charcase dos TEdits originais e digitado, por exemplo, pode fazer os hashs serem completamente diferentes...
Outra possibilidade é que vc tenha no BD dois nomes iguais, com senhas diferentes... o locate encontrará o primeiro, então a comparação pode não ser bem sucedida, dependendo da senha digitada...
Se não for isso, esta função q vc está utilizando (MD5Hash) eu nunca utilizei... e não sei se seria sua, mas esta é a minha função para hashear strings com o MD5, baseada nas units do LockBox :
function HashMD5Str(S: String): String; var MD5Digest: TMD5Digest; begin StringHashMD5(MD5Digest, S); Result:= BufferToHex(MD5Digest, SizeOf(MD5Digest)); end;
T+
GOSTEI 0
Cebikyn
02/05/2004
aí cebis, tens algum material bom sobre o assunto pra me disponibilzar?
Sim. Vc pode visitar a seção de criptografia do meu LinkBlog, onde vc encontrará os links com as minhas fontes mais recentes:
http://www.linkblog.com.br/usuarios/cebikyn/criptografia
Ou ainda o meu site sobre criptografia (em construção...):
http://paginas.terra.com.br/informatica/cebikyn/seguranca/index.htm
Precisando de ajuda é só pedir!
GOSTEI 0
Motta
02/05/2004
Gostei deste livro , uma boa literatura inicial
SEGURANCA DE DADOS COM CRIPTOGRAFIA METODOS E ALGORITMOS
DANIEL BALPARDA DE CARVALHO
ISBN: 8586846384
Editora: BOOK EXPRESS
Número de páginas: 252
Encadernação: Brochura
Lançamento: 11/04/2000
http://www.siciliano.com.br/livro.asp?orn=LSE&Tipo=2&ID=143253
SEGURANCA DE DADOS COM CRIPTOGRAFIA METODOS E ALGORITMOS
DANIEL BALPARDA DE CARVALHO
ISBN: 8586846384
Editora: BOOK EXPRESS
Número de páginas: 252
Encadernação: Brochura
Lançamento: 11/04/2000
http://www.siciliano.com.br/livro.asp?orn=LSE&Tipo=2&ID=143253
GOSTEI 0
Cebikyn
02/05/2004
Apenas um aviso sobre os Hashes MD:
O Hash MD4 foi quebrado, e como o MD5 é da mesma família, deve ser considerado inseguro. Como alternativa, deve-se usar SHA-1 e RipeMD-160. Sendo que o último gera hashes de 160bits, contra os 128 do MD5.
Nota: 160 bits quer dizer que existem 2^160 (dois elevado à 160ª potência) hashes diferentes. Por analogia, 128 bits representam 2^128 hashes diferentes. Não há com o q se preocupar, esses números sãoo bem grandes...
O Hash MD4 foi quebrado, e como o MD5 é da mesma família, deve ser considerado inseguro. Como alternativa, deve-se usar SHA-1 e RipeMD-160. Sendo que o último gera hashes de 160bits, contra os 128 do MD5.
Nota: 160 bits quer dizer que existem 2^160 (dois elevado à 160ª potência) hashes diferentes. Por analogia, 128 bits representam 2^128 hashes diferentes. Não há com o q se preocupar, esses números sãoo bem grandes...
GOSTEI 0
Delphi32
02/05/2004
Agora eu fiquei com uma dúvida:
Imagine que eu queira gravar numa tabela usuários do meu banco o nome de usuário e senha criptografado. O que seria melhor para isso? Usar um cypher ou um Hash?
Até!
Imagine que eu queira gravar numa tabela usuários do meu banco o nome de usuário e senha criptografado. O que seria melhor para isso? Usar um cypher ou um Hash?
Até!
GOSTEI 0
Delphi32
02/05/2004
sobe...
GOSTEI 0
Vinicius2k
02/05/2004
Para o nome do usuário, particularmente, não vejo necessidade... mas se quiser use um cypher, pq um hash não é recuperável, logo, vc não vai poder obter uma lista de usuários...
Para a senha use um hash, sem dúvida...
T+
Para a senha use um hash, sem dúvida...
T+
GOSTEI 0
Delphi32
02/05/2004
Só mais uma dúvida: Em qual pacote encontro o RipeMD-160?
GOSTEI 0
Delphi32
02/05/2004
ops... encontrei no DCPCrypt...
Valeu!
Valeu!
GOSTEI 0
Delphi32
02/05/2004
err... só tem um problema... aparentemente com o RipeMD-160 não é possível ´hashear´ uma string. Ou é?
GOSTEI 0
Bruno Belchior
02/05/2004
tem um ótimo site sobre o assunto que retrata toda a lógica [url]www.numaboa.com[/url]
GOSTEI 0
Anderson_blumenau
02/05/2004
muito bom
GOSTEI 0
Alessandro
02/05/2004
Olá, sei que o post já é antigo, mas se desejar códigos para referência em C# deixo aqui o link de um repositório meu no GitHub: https://github.com/alecgn/crypthash
O repositório/projeto basicamente possui um Console App feito em .NET Core e uma DLL feita em .NET Standard, com suporte a criptografia simétrica autenticada (AES 256 bits em modo CBC com autenticação HMACSHA256) e hash (MD5, SHA1, SHA256, SHA512 e BCrypt), para textos e arquivos, inclusive com funcionalidade de verificação de integridade/checksum de arquivos e textos. Lá no README do repositório tem links para baixar já compilado em modo auto-contido, ou seja, executa sem a necessidade de ter o framework instalado... Abraços!
O repositório/projeto basicamente possui um Console App feito em .NET Core e uma DLL feita em .NET Standard, com suporte a criptografia simétrica autenticada (AES 256 bits em modo CBC com autenticação HMACSHA256) e hash (MD5, SHA1, SHA256, SHA512 e BCrypt), para textos e arquivos, inclusive com funcionalidade de verificação de integridade/checksum de arquivos e textos. Lá no README do repositório tem links para baixar já compilado em modo auto-contido, ou seja, executa sem a necessidade de ter o framework instalado... Abraços!
GOSTEI 0
Alessandro
02/05/2004
Olá, sei que o post já é antigo, mas se desejar códigos para referência em C# deixo aqui o link de um repositório meu no GitHub: https://github.com/alecgn/crypthash
O repositório/projeto basicamente possui um Console App feito em .NET Core e uma DLL feita em .NET Standard, com suporte a criptografia simétrica autenticada (AES 256 bits em modo CBC com autenticação HMACSHA256) e hash (MD5, SHA1, SHA256, SHA512 e BCrypt), para textos e arquivos, inclusive com funcionalidade de verificação de integridade/checksum de arquivos e textos. Lá no README do repositório tem links para baixar já compilado em modo auto-contido, ou seja, executa sem a necessidade de ter o framework instalado... Abraços!
O repositório/projeto basicamente possui um Console App feito em .NET Core e uma DLL feita em .NET Standard, com suporte a criptografia simétrica autenticada (AES 256 bits em modo CBC com autenticação HMACSHA256) e hash (MD5, SHA1, SHA256, SHA512 e BCrypt), para textos e arquivos, inclusive com funcionalidade de verificação de integridade/checksum de arquivos e textos. Lá no README do repositório tem links para baixar já compilado em modo auto-contido, ou seja, executa sem a necessidade de ter o framework instalado... Abraços!
GOSTEI 0