Articles of criptografia

Por que usar a class C # System.Random em vez de System.Security.Cryptography.RandomNumberGenerator?

Por que alguém usaria o gerador de números randoms “padrão” de System.Random em vez de sempre usar o gerador de números randoms criptograficamente seguro de System.Security.Cryptography.RandomNumberGenerator (ou suas subclasss porque RandomNumberGenerator é abstrato)? Nate Lawson nos diz em sua apresentação do Google Tech Talk ” Crypto Strikes Back ” no minuto 13:11 para não usar […]

Como posso ocultar ou criptografar o código JavaScript?

Existe alguma maneira de ocultar ou criptografar o código JavaScript para impedir que as pessoas visualizem, copiem e / ou modifiquem programas proprietários?

Convertendo um keystore Java no formato PEM

Eu estou tentando converter de um arquivo de keystore Java em um arquivo PEM usando keytool e openssl applicactions. Mas não consegui encontrar uma boa maneira de fazer a conversão. Alguma ideia? Em vez de converter o keystore diretamente no PEM, tentei criar um arquivo PKCS12 primeiro e depois convertê-lo em arquivo PEM relevante e […]

Preciso guardar o sal com bcrypt?

O javadoc do bCrypt tem este código para como criptografar uma senha: String pw_hash = BCrypt.hashpw(plain_password, BCrypt.gensalt()); Para verificar se uma senha de texto sem formatação corresponde a uma que foi hash anteriormente, use o método checkpw: if (BCrypt.checkpw(candidate_password, stored_hash)) System.out.println(“It matches”); else System.out.println(“It does not match”); Esses trechos de código implicam para mim que […]

Como os valores de hash MD5 não são reversíveis?

Um conceito sobre o qual sempre me perguntei é o uso de funções e valores criptocharts de hash. Eu entendo que essas funções podem gerar um valor de hash que é único e praticamente impossível de reverter, mas aqui está o que eu sempre imaginei: Se no meu servidor, em PHP eu produzo: md5(“stackoverflow.com”) = […]

Seguro números randoms em javascript?

Como faço para gerar números randoms criptograficamente seguros em javascript?

Como posso assinar um arquivo usando RSA e SHA256 com o .NET?

Meu aplicativo irá pegar um conjunto de arquivos e assiná-los. (Eu não estou tentando assinar um assembly.) Existe um arquivo .p12 que eu recebo a chave privada. Este é o código que eu estava tentando usar, mas recebo um System.Security.Cryptography.CryptographicException “Invalid algorithm specified.” . X509Certificate pXCert = new X509Certificate2(@”keyStore.p12″, “password”); RSACryptoServiceProvider csp = (RSACryptoServiceProvider)pXCert.PrivateKey; string […]

Onde você armazena suas cordas de sal?

Eu sempre usei uma string de sal por input adequada ao hashing de senhas para armazenamento de database. Para minhas necessidades, armazenar o sal no database ao lado da senha com hash sempre funcionou bem. No entanto, algumas pessoas recomendam que o sal seja armazenado separadamente do database. O argumento deles é que, se o […]

Qual function hash criptográfica devo escolher?

A estrutura .NET é fornecida com 6 diferentes algoritmos de hashing: MD5: 16 bytes (tempo para hash 500MB: 1462 ms) SHA1: 20 bytes (1644 ms) SHA256: 32 bytes (5618 ms) SHA384: 48 bytes (3839 ms) SHA512: 64 bytes (3820 ms) RIPEMD: 20 bytes (7066 ms) Cada uma dessas funções funciona de maneira diferente; O MD5 […]

Diferença entre java.util.Random e java.security.SecureRandom

Minha equipe foi entregue algum código do lado do servidor (em Java) que gera tokens randoms e eu tenho uma pergunta sobre o mesmo – O objective desses tokens é bastante sensível – usado para identificação de session, links de redefinição de senha, etc. Portanto, eles precisam ser criptograficamente randoms para evitar que alguém os […]