Tag: 加密

BadPaddingException:pad块损坏

我正在尝试使用Rijndael / CBC / PKCS7解密用C#加密的Java文件。 我一直得到以下exception: javax.crypto.BadPaddingException:pad块损坏 在org.bouncycastle.jce.provider.JCEBlockCipher.engineDoFinal(未知来源) 在javax.crypto.Cipher.doFinal(DashoA13 * ..) 在AESFileDecrypter.decrypt(AESFileDecrypter.java:57) 当web服务器为第一个字节[]调用doFinal(inpbytes)方法时。 我猜这是钥匙或IV的问题。 我在我的文件系统上有加密文件进行测试。 是否有任何人可以看到我的代码下面明显错误? *** keyStr是base64编码的 public AESFileDecrypter(String keyStr){ try { Security.addProvider(new BouncyCastleProvider()); convertIvParameter(); key = new sun.misc.BASE64Decoder().decodeBuffer(keyStr); //use the passed in Base64 decoded key to create a key object decryptKey = new SecretKeySpec(key, “AES”); //specify the encryption algorithm decryptCipher = Cipher.getInstance(“AES/CBC/PKCS7Padding”, “BC”); […]

java aes 256 java.security.InvalidKeyException:安装策略后出现非法密钥大小

我用AES 256密钥加密字节有问题。 我已经安装了这个政策。 这就是我所做的: 下载文件: http : //www.oracle.com/technetwork/java/javase/downloads/jce-7-download-432124.html 我将文件local_policy和US_export_policy移动到目录/Library/Java/JavaVirtualMachines/jdk1.7.0_40.jdk/Contents/Home/jre/lib/security 我重启mac 但我仍然收到以下代码的错误消息: KeyGenerator keyGenerator = KeyGenerator.getInstance(“AES”); keyGenerator.init(256); SecretKey secretKey = keyGenerator.generateKey(); Cipher decryption = Cipher.getInstance(“AES/CBC/PKCS5PADDING”); decryption.init(Cipher.DECRYPT_MODE, secretKey, new IvParameterSpec(secretKey.getEncoded())); // <– Illegal key size 我的Java版本: java version “1.7.0_40” Java(TM) SE Runtime Environment (build 1.7.0_40-b43) Java HotSpot(TM) 64-Bit Server VM (build 24.0-b56, mixed mode) 我需要做什么,使用256 AES加密?

AES使用java加密openssl解密

我必须使用openssl命令行或C api加密xml文件。 输出应为Base64。 java程序将用于解密。 此程序由客户提供,无法更改(他们将此代码用于遗留应用程序)。 正如您在下面的代码中看到的那样,客户提供了一个密码短语,因此密钥将使用SecretKeySpec方法生成。 Java代码: // Passphrase private static final byte[] pass = new byte[] { ‘0’, ‘1’, ‘2’, ‘3’, ‘4’, ‘5’, ‘6’, ‘7’, ‘8’, ‘9’, ‘0’,’1′, ‘2’, ‘3’, ‘4’, ‘5’ }; public static String encrypt(String Data) throws Exception { Key key = generateKey(); Cipher c = Cipher.getInstance(“AES/ECB/PKCS5Padding”); c.init(Cipher.ENCRYPT_MODE, key); byte[] encVal = […]

Android加密“pad block corrupted”exception

在此代码中,此行导致exception: clearText = c.doFinal(Base64.decode(encryptedText, Base64.DEFAULT)); javax.crypto.BadPaddingException: pad block corrupted 我从以下代码获得了代码: http : //www.techrepublic.com/blog/software-engineer/attention-android-developers-keep-user-data-safe/ 有任何想法吗? private String decrypt (String encryptedText) { byte[] clearText = null; try { SecretKeySpec ks = new SecretKeySpec(getKey(), “AES”); Cipher c = Cipher.getInstance(“AES”); c.init(Cipher.DECRYPT_MODE, ks); clearText = c.doFinal(Base64.decode(encryptedText, Base64.DEFAULT)); return new String(clearText, “UTF-8”); } catch (Exception e) { return null; } } […]

Java密码加密

我正在尝试学习如何使用Java进行基于密码的加密。 我在网上找到几个例子,但Stack Overflow上没有(还)。 这些例子对我来说有点解释,特别是关于算法选择。 似乎有很多传递字符串来说明要使用什么算法,但很少有关于字符串来自何处及其含义的文档。 并且似乎不同的算法可能需要KeySpec类的不同实现,所以我不确定哪些算法可以使用我正在查看的PBEKeySpec类。 此外,这些示例似乎都过时了,许多要求您获得旧的加密包,以前不是JDK的一部分,甚至是第三方实现。 有人可以直接介绍我需要做什么来实现加密(字符串数据,字符串密码)和解密(字节[]数据,字符串密码)?

如何使用Java中的BouncyCastle API加密和加密密码?

我对密码学很新,我使用BouncyCasetle API来加密密码并将其存储在数据库中。 对于加密,我使用的是SHA-1算法,我希望将密码加密以防止它再次进行字典攻击。 任何帮助,将不胜感激。

SecureRandom安全的Java种子

这段代码安全吗? SecureRandom randomizer = new SecureRandom(String.valueOf(new Date().getTime()).getBytes()); 这是实例安全随机种子的正确方法吗?

用Ruby加密和用Java解密 – 为什么它不起作用?

我究竟做错了什么? 我希望Java程序打印“私有”。 我的目标是尝试用Java编写MessageEncryptor.decrypt ruby​​方法。 Ruby加密(大多数代码来自MessageEncryptor,但未修改为Marshal),但我已经将其解压缩,以便更容易看到发生了什么: require ‘openssl’ require ‘active_support/base64’ @cipher = ‘aes-256-cbc’ d = OpenSSL::Cipher.new(@cipher) @secret = OpenSSL::PKCS5.pbkdf2_hmac_sha1(“password”, “some salt”, 1024, d.key_len) cipher = OpenSSL::Cipher::Cipher.new(@cipher) iv = cipher.random_iv cipher.encrypt cipher.key = @secret cipher.iv = iv encrypted_data = cipher.update(“private”) encrypted_data << cipher.final puts [encrypted_data, iv].map {|v| ::Base64.strict_encode64(v)}.join("–") 哪个印刷: tzFUIVllG2FcYD7xqGPmHQ == – UAPvdm3oN3Hog9ND9HrhEA == Java代码: package decryptruby; […]

生成RSA密钥对并将private编码为字符串

我想生成512位RSA密钥对,然后将我的公钥编码为字符串。 我怎样才能做到这一点?

使用RSA可以加密的数据量有多少限制?

通常,建议使用RSA加密对称密钥,然后将其用于加密“有效负载”。 对于可以使用RSA加密的数据量的实际(或理论)限制是什么(我使用的是2048位RSA密钥大小)。 特别是,我想知道使用(不同的)RSA公钥加密RSA公钥(256字节)是否安全? 我在Java中使用Bouncy Castle加密库。