Tag: openssl

如何在openssl生成的java中使用.key和.crt文件?

我需要java中的非对称加密。 我在http://www.imacat.idv.tw/tech/sslcerts.html中用openssl生成带有自己密码和.crt文件的.key和.crt文件。 如何使用这些.key和.crt文件在Java中提取publickey和私钥?

Java相当于C ++加密

我有以下用于加密的c ++代码片段: EVP_CIPHER_CTX ctx; const EVP_CIPHER * cipher = EVP_des_ede3_cbc(); unsigned char iv[EVP_MAX_IV_LENGTH]; unsigned char key[EVP_MAX_KEY_LENGTH]; String seed; _config->get_value(“crypto_seed”, &seed); // uses the seed value from pimp config. if (seed.is_empty()) { return false; } EVP_BytesToKey(cipher, EVP_sha1(), (unsigned char *) 0, // no salt reinterpret_cast(const_cast(seed.chars())), seed.length(), 1, // hash passphrase just once. key, iv); EVP_CIPHER_CTX_init(&ctx); EVP_CipherInit_ex(&ctx, […]

使用Java解密OpenSSL PEM编码的RSA私钥?

我有一个加密的私钥,我知道密码。 我需要使用Java库解密它。 我不想使用BouncyCastle,除非没有其他选择。 根据以往的经验,有太多的变化,没有足够的文档。 私钥是这种forms: —–BEGIN RSA PRIVATE KEY—– Proc-Type: 4,ENCRYPTED DEK-Info: DES-EDE3-CBC,56F3A98D9CFFA77A X5h7SUDStF1tL16lRM+AfZb1UBDQ0D1YbQ6vmIlXiK…. ….. /KK5CZmIGw== —–END RSA PRIVATE KEY—– 我相信关键数据是Base64编码,因为我看到64个字符后的\r\n 。 我尝试了以下解密密钥: import java.security.Key; import java.security.KeyFactory; import java.security.PrivateKey; import java.security.spec.PKCS8EncodedKeySpec; import javax.crypto.EncryptedPrivateKeyInfo; import javax.crypto.SecretKeyFactory; import javax.crypto.spec.PBEKeySpec; public String decrypt(String keyDataStr, String passwordStr){ // This key data start from “X5… to ==” char [] password=passwordStr.toCharArray(); […]

在Android应用中为HttpClient更改OpenSSL库

我需要在我的项目中为HttpClient使用自定义OpenSSL库。 我为Android编译了libcrypto.so和libssl.so ,并将文件放在jniLibs文件夹中。 应用Heartbleed扫描仪看到它们。 System.loadLibrary(“crypto”)和System.loadLibrary(“ssl”)有效。 但现在我需要让HttpClient使用我的库而不是标准的SSL库。 但我不知道哪种方式可以移动以及如何移动。 我使用的是OpenSSL 1.0.1h和Android Studio 1.0.2。 提前感谢您的建议。

Java AES 128加密与openssl不同

我们遇到了一种奇怪的情况,我们在Java中使用的加密方法会产生不同的输出到openssl,尽管它们在配置上看起来相同。 使用相同的键和IV,文本“快速布朗狐狸跳过懒狗!” 加密到base64’d字符串…… openssl: A8cMRIrDVnBYj2+XEKaMOBQ1sufjptsAf58slR373JTeHGPWyRqJK+UQxvJ1B/1L Java: A8cMRIrDVnBYj2+XEKaMOBQ1sufjptsAf58slR373JTEVySz5yJLGzGd7qsAkzuQ 这是我们的openssl电话…… #!/bin/bash keySpec=”D41D8CD98F00B2040000000000000000″ ivSpec=”03B13BBE886F00E00000000000000000″ plainText=”The quick BROWN fox jumps over the lazy dog!” echo “$plainText”>plainText openssl aes-128-cbc -nosalt -K $keySpec -iv $ivSpec -e -in plainText -out cipherText base64 cipherText > cipherText.base64 printf “Encrypted hex dump = ” xxd -p cipherText | tr -d ‘\n’ printf “\n\n” printf “Encrypted […]

Java openssl加密/解密密钥生成

我正在使用Java 8,我试图用Java模拟以下openssl调用。 加密: echo -n ‘hello world’ | openssl enc -a -aes-256-cbc -md sha256 -pass pass:97DE:4F76 U2FsdGVkX18PnO / NLSxJ1pg6OKoLyZApMz7aBRfKhJc = 解密: echo U2FsdGVkX18PnO/NLSxJ1pg6OKoLyZApMz7aBRfKhJc= | openssl enc -d -a -aes-256-cbc -md sha256 -pass pass:97DE:4F76 你好,世界 问题: 我的实现不起作用。 我已经访问了许多其他StackOverflow答案,但未能找到正确的实现。 任何人都可以指出我正确的方向来解决这个问题吗? 上例中的openssl系统调用使用摘要sha256。 如果我使用sha1,而不是Java实现,那么只需PBKDF2WithHmacSHA256 PBKDF2WithHmacSHA1更改PBKDF2WithHmacSHA1吗? Test.java package test; import java.security.spec.KeySpec; import javax.crypto.Cipher; import javax.crypto.SecretKey; import javax.crypto.SecretKeyFactory; import javax.crypto.spec.IvParameterSpec; import […]

如何使用java解码用openssl aes-128-cbc编码的字符串?

我正在使用openssl使用以下命令对字符串进行编码: openssl enc -aes-128-cbc -a -salt -pass pass:mypassword <<< "stackoverflow" 结果给我一个编码字符串: U2FsdGVkX187CGv6DbEpqh/L6XRKON7uBGluIU0nT3w= 到目前为止,我只需要使用openssl对其进行解码,因此以下命令将返回先前编码的字符串: openssl enc -aes-128-cbc -a -salt -pass pass:mypassword -d <<< "U2FsdGVkX187CGv6DbEpqh/L6XRKON7uBGluIU0nT3w=" 结果: stackoverflow 现在,我需要解码java应用程序中的编码字符串。 我的问题是: 有人能为我提供一个简单的java类来解码用以前给定的openssl命令编码的字符串吗? 非常感谢。