Tag: cbc mode

TripleDes CBC Nodejs实现问题

我需要在NodeJs中复制http://tripledes.online-domain-tools.com/中的3DS CBCencryption结果。 这是我的代码: const crypto = require('crypto'); const cipher = crypto.createCipher('des-ede3-cbc', key); password = Buffer.from('MYPASS', 'utf8'); let encrypted = [cipher.update(password)]; encrypted.push(cipher.final()); encrypted = Buffer.concat(encryptedArr); console.log(encrypted.toString('hex')); tripledes.online-domain-tools.com的结果是: 注意结果应该是59 30 20 02 a5 8c dd 5e,但是我的代码给了我33 97 d8 b0 e3 00 d1 53。 我错过了什么? 编辑2:按照你的build议,我改变了我的代码(还添加了一些与NIST出版物的指导进行的testing): const crypto = require('crypto'); function encrypt (inputkey, keyformat, password, passwordformat) { let […]

Java和Node之间的encryption不一致

我试图在Node.js中复制一个基于Java的encryptionscheme,但不幸的是我得到了不一致的结果。 这是Java方法: private Transfer encrypt(byte[] salt, String ticketNumber, String data) throws Exception { SecretKeyFactory factory = SecretKeyFactory.getInstance("PBKDF2WithHmacSHA1"); KeySpec spec = new PBEKeySpec(ticketNumber.toCharArray(), salt, 1000, 128); SecretKey tmp = factory.generateSecret(spec); SecretKey secret = new SecretKeySpec(tmp.getEncoded(), "AES"); String encoded = java.util.Base64.getEncoder().encodeToString(secret.getEncoded()); Cipher cipher = Cipher.getInstance("AES/CBC/PKCS5Padding"); byte[] iv ={0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00}; IvParameterSpec ips = new IvParameterSpec(iv); cipher.init(Cipher.ENCRYPT_MODE, secret, ips); AlgorithmParameters […]