Tag: mcrypt

如何将这个mcrypt php代码转换成nodejs中的相同代码?

我需要改变这个PHP代码: $cipher_alg = MCRYPT_TRIPLEDES; $key = "thekey"; $iv = mcrypt_create_iv(mcrypt_get_iv_size($cipher_alg, MCRYPT_MODE_ECB), MCRYPT_RAND); $encrypted_string = mcrypt_encrypt($cipher_alg, $key, $string, MCRYPT_MODE_ECB, $iv); return base64_encode($encrypted_string); 到nodejs。 我使用https://github.com/tugrul/node-mcrypt进行testing,但使用相同的string,encryption结果不一样: 代码nodejstesting: let blowfishCfb = new MCrypt('tripledes', 'ecb'); let iv = blowfishCfb.generateIv(); blowfishCfb.validateKeySize(false); blowfishCfb.validateIvSize(false); blowfishCfb.open('thekey', iv); let ciphertext = blowfishCfb.encrypt(text); return Buffer.concat([iv, ciphertext]).toString('base64'); 你能帮助理解这个吗? 谢谢,

使用node.js解密mcrypt编码的文本

我使用PHP的mcrypt编码了Blowfish的文本: $td = mcrypt_module_open ('blowfish', '', 'cfb', ''); $iv = mcrypt_create_iv (mcrypt_enc_get_iv_size ($td), MCRYPT_RAND); mcrypt_generic_init ($td, "somekey", $iv); $crypttext = mcrypt_generic ($td, "sometext"); mcrypt_generic_deinit ($td); $res = base64_encode($iv.$crypttext); 当试图用Node的encryption库解码数据时,我得到垃圾输出。 var crypto = require("crypto"), ivAndCiphertext = "base64-encoded-ciphertext", iv, cipherText, ivSize = 8, res= ""; ivAndCiphertext = new Buffer(ivAndCiphertext, 'base64'); iv = new Buffer(ivSize); cipherText = new […]

Node.js`crypto.final`使得encryption的结果不同于PHP`mcrypt_encrypt`

起初,Node.jsencryption。 // Both of key and IV are hex-string, but I hide them in Stackoverflow. var secretKey = new Buffer('aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa', 'hex'), // 48 chars iv = new Buffer('bbbbbbbbbbbbbbbb', 'hex'); // 16 chars var str = 'This string will be encrypted.'; var cipher = crypto.createCipheriv('des-ede3-cbc', secretKey, iv), cryptedStr = cipher.update(str, 'utf8', 'base64') + cipher.final('base64'); 然后,PHP mcrypt。 […]

用nodejs crypto与php的mcrypt解密blowfish-ecb

我试图在Node.js中使用内置的encryption库来解码以下base64编码的密文 2tGiKhSjSQEjoDNukf5BpfvwmdjBtA9kS1EaNPupESqheZ1TCr5ckEdWUvd+e51XWLUzdhBFNOBRrUB5jR64Pjf1VKvQ4dhcDk3Fdu4hyUoBSWfY053Rfd3fqpgZVggoKk4wvmNiCuEMEHxV3rGNKeFzOvP/P3O5gOF7HZYa2dgezizXSgnnD6mCp37OJXqHuAngr0pps/i9819O6FyKgu6t2AzwbWZkP2sXvH3OGRU6oj5DFTgiKGv1GbrM8mIrC7rlRdNgiJ9dyHrOAwqO+SVwzhhTWj1K//PoyyzDKUuqqUQ6AvJl7d1o5sHNzeNgJxhywMT9F10+gnliBxIg8gGSmzBqrgwUNZxltT4uEKz67u9eJi59a0HBBi/2+umzwOCHNA4jl1x0mv0MhYiX/A== 它似乎与PHP的mcrypt函数使用stringtypeconfig.sys^_-作为关键,如通过input值http://www.tools4noobs.com/online_tools/decrypt/和selectBlowfish,ECB,Base64解码。 但是,当我在Node.js中运行以下代码: var crypto = require('crypto'); var data = "2tGiKhSjSQEjoDNukf5BpfvwmdjBtA9kS1EaNPupESqheZ1TCr5ckEdWUvd+e51XWLUzdhBFNOBRrUB5jR64Pjf1VKvQ4dhcDk3Fdu4hyUoBSWfY053Rfd3fqpgZVggoKk4wvmNiCuEMEHxV3rGNKeFzOvP/P3O5gOF7HZYa2dgezizXSgnnD6mCp37OJXqHuAngr0pps/i9819O6FyKgu6t2AzwbWZkP2sXvH3OGRU6oj5DFTgiKGv1GbrM8mIrC7rlRdNgiJ9dyHrOAwqO+SVwzhhTWj1K//PoyyzDKUuqqUQ6AvJl7d1o5sHNzeNgJxhywMT9F10+gnliBxIg8gGSmzBqrgwUNZxltT4uEKz67u9eJi59a0HBBi/2+umzwOCHNA4jl1x0mv0MhYiX/A=="; var decipher = crypto.createDecipher('bf-ecb', 'typeconfig.sys^_-'); data = decipher.update(data, "base64", "utf8"); data += decipher.final("utf8"); console.log(data); 我得到垃圾输出: y : d ( Q i z1 4 k ( a5 u 73c/ (ֻ ) fȠ ec -<z 8 ( -L ԛ I 1L* u 4 j- Чh쭊@\P)?޼ […]