Tag: bouncycastle

Java BouncyCastle中的确定性AES-CTR?

我一直在Node中使用aes-js来使用AES计数器模式进行encryption/解密。 正如你可以在例子中看到的,我使用它没有填充,我可以指定哪个块(在这种情况下,0)我想开始。 var aesCTR = new aesjs.ModeOfOperation.ctr(keyBytes, new aesjs.Counter(0)); var encryptedBytes = aesCTR.encrypt(plaintextBytes); 我想在Java中重现上面的相同行为。 我正在使用BouncyCastle ,如下面的例子。 SecretKeySpec key = new SecretKeySpec(keyBytes, "AES"); Cipher cipher = Cipher.getInstance("AES/CTR/NoPadding", "BC"); cipher.init(Cipher.ENCRYPT_MODE, key); byte[] encrypted=cipher.doFinal(msgBytes); 但是这个实现似乎没有输出与上面相同的值。 另外,似乎每次运行都会自动增加计数器(在这种情况下不合需要的行为)。 有没有一种方法来匹配使用Java的Node JS实现?

用AESEngine和PKCS7填充对bouncycastle的PaddedBufferedBlockCipher的等效密码是什么?

我想用nodejs解密AES-256encryption的string。 我正在使用encryption模块。 该string使用Bouncy城​​堡java库encryption。 在Java中,密码使用: PaddedBufferedBlockCipher cipher = new PaddedBufferedBlockCipher(new AESEngine(), new PKCS7Padding()); nodejs的crypto模块使用openssl的密码列表来初始化它,如: var decipher = crypto.createDecipher('aes-256-cbc',key); 我应该使用哪种algorithm? 以下是可供select的algorithm列表: -bash-4.1$ openssl list-cipher-algorithms|grep AES-256 AES-256-CBC AES-256-CFB AES-256-CFB1 AES-256-CFB8 AES-256-CTR AES-256-ECB AES-256-OFB AES-256-XTS AES256 => AES-256-CBC aes256 => AES-256-CBC