Tag: encryption

在ColdFusion中encryption,在Node.js中解密

我正在encryptionColdFusion中的string enc_string = '7001010000006aaaaaabbbbbb'; uid = encrypt(enc_string,'WTq8zYcZfaWVvMncigHqwQ==','AES','Hex'); // secret key for tests only 结果: DAEB003D7C9DBDB042C63ED214E85854EAB92A5C1EC555765B565CD8723F9655 后来我想解密Node中的那个string(只是一个例子) uid='DAEB003D7C9DBDB042C63ED214E85854EAB92A5C1EC555765B565CD8723F9655' decipher = crypto.createDecipher('aes-192-ecb', 'WTq8zYcZfaWVvMncigHqwQ==') decipher.setAutoPadding(false); dec = decipher.update(uid, 'hex', 'utf8') dec += decipher.final('utf8') 我尝试了几个密码,但没有运气。 我不想修改ColdFusion代码来使其工作,但如果没有其他机会,我会这样做。 我想用GET从一个站点发送一些encryption的数据到另一个。 有什么build议? 编辑:我尝试所有AES,DES,与IV,没有IV,与&没有填充。 也试过base64。 也没有运气。

去朗生成hmac

我是新来的语言,我需要用go语言创build一个Hmac。 我在nodejs中创build了一个Hmac,需要用go语言生成相同的Hamc。 尝试下面的代码,但得到完全不同的输出。 我不知道我做错了什么。 这是我的尝试 package main import ( "crypto/hmac" "crypto/sha256" "encoding/base64" "fmt" ) func ComputeHmac256(message string, secret string) string { key := []byte(secret) h := hmac.New(sha256.New, key) h.Write([]byte(message)) return base64.StdEncoding.EncodeToString(h.Sum(nil)) } func main() { fmt.Println(ComputeHmac256("sms1", "b5fb5b3a65b8429693c3a029308e2e46")) } Output: JVN7kUPFL0aQ09lIH4YOsFJA3A2faqTuu6zIaYo61VI= 需要去下面的nodejs代码 var crypto = require('crypto'), text = 'sms1', key = 'b5fb5b3a65b8429693c3a029308e2e46' var hash = crypto.createHmac('sha256', […]

用node.js生成10的幂模数的密码随机数

使用encryption库,我可以要求库给我一些随机字节。 问题是这个字节是从0到255每个(包含)的数字,因此创build一个均匀分布的结果并不那么简单。 我的意思是以下几点: 函数接收到的数字N为10,100,… 10 ^ b,其中b是1到8之间的数字(可以更大,但是我不需要更大的数字),并返回0和给定的数字(不包括给定的数字),所以说,如果N是100,则函数的结果是从0到99,如果N是10,则结果是从0到9。 您可以使用Math.random创build一个随机数,然后乘以N,然后使用floor。 但是,Math.random不是密码安全的,所以必须使用随机生成的2 ^ 8m的数字来完成,其中m只是给予crypto.randomBytes的任意数量的字节。 我创build了一个显然正在工作的简单函数。 不过,我知道把随机数的一些偏差引入是相当容易的,我只希望对它进行validation,因为这对项目来说有些重要。 genera_aleatorio_residuo_potencia10 : function (n, cb) { var digitos = Math.log(n) / Math.LN10; var extra_base2 = digitos > 8 ? digitos – 8 : 0; if (Math.floor(digitos + .4) – digitos > 0.00000001) { return cb("Numero no es potencia de 10 (10, 100, […]

使用椭圆曲线键创build服务器和客户机时使用节点JS TLS密码和密码选项(不共享密码套件错误)

关于这个问题 ,我试图在node.js中启动一个TLS服务器,以反映我在OpenSSL中创build的服务器。 我已经从命令行使用OpenSSLtesting了客户端和服务器,并成功build立连接。 当我尝试将服务器移植到node.js(并且仍然使用OpenSSL客户端连接到服务器)时,我收到一个“no shared cipher”错误。 我想知道是否有什么特别的我需要做tls.createServer()使用passphrase选项时, 以下是我分别为服务器和客户端成功使用的OpenSSL命令,请注意,passphrase.txt文件包含一行,即密码: $ openssl s_server -accept 8888 -cert server.cert -key server.key -pass file:passphrase.txt -CAfile ca.cert $ openssl s_client -connect 127.0.0.1:8888 -cert client.cert -key client.key -pass file:passphrase.txt -CAfile ca.cert 如果使用附加参数-cipher 'ECDHE-ECDSA-AES128-GCM-SHA256'指定客户端和/或服务器的密码,我也可以成功连接。 我正在使用openssl ecparam生成椭圆曲线键,并使用openssl ca创build的CA进行签名,正如我以前的问题所讨论的。 用node.js编写的服务器代码如下所示: var tls = require('tls'); var fs = require('fs'); var msg = '***********\n\nHello there secure client!\n\n***********'; […]

Node.JS和PHP AES-128-EBC数据encryption

我试图在javascript(node.js)中生成一个encryption的数据块,然后通过HTTP传递给另一个系统。 我已经在PHP中给出了一个参考系统来比较我的结果。 由于看似无法理解的原因,我无法让我的JavaScript版本产生与PHP版本相同的encryption数据。 我检查了我使用的密钥是一样的。 有没有人有任何线索或提示什么,所以我做错了什么。 (是的,我知道欧洲央行不好,但这不是我的select) 参考PHP的实现 <?php function getEncrypt($str, $key) { $realKey = substr($key, 0, 16); $padding = pkcs5_pad($str, 16); return base64_encode(mcrypt_encrypt(MCRYPT_RIJNDAEL_128, $realKey, $padding, MCRYPT_MODE_ECB)); } function pkcs5_pad ($text, $blocksize) { $pad = $blocksize – (strlen($text) % $blocksize); return $text . str_repeat(chr($pad), $pad); } $key = "oi3sgkosQPIdFa0eVSjecIhkha2nAfpn3anAozln0e9rkIGPvzUBgToCtlXLsKyjBITGKozHmn1NArgQodawidiVnyxccsf8ZnUgof4kq0iBCS7wrG1raytauMusRjjb"; $string = '{"pol.start":"11-06-2012 09:00:00","pol.end.after":43200,"lic.cache":"yes","playback":2880,"out.digital":"use","out.analog":"use"}'; $encData = getEncrypt($string, […]

在Objective-C解密节点j中进行encryption

我正在encryption一些文本我想发送到服务器,我没有问题encryption,并在Objective-C解密,但是当我发送到nodejs服务器的结果解密它永远不会正确的encryption数据总是来相同…我认为问题是我如何使用encryption库,这里是我的Xcode代码: NSString * key =@"1234567890123456"; NSString * url = @"http://flystory.herokuapp.com/register"; NSString *post = @"hola mundo!!!!!!!!!!"; NSData *postData = [post dataUsingEncoding:NSASCIIStringEncoding allowLossyConversion:YES]; NSLog(@"%@",[[NSString alloc] initWithData:postData encoding:NSASCIIStringEncoding]); NSError *e; CCCryptorStatus err; postData = [postData dataEncryptedUsingAlgorithm:kCCAlgorithmAES128 key:key options:kCCOptionECBMode error:&err]; NSLog(@"%@",[[NSString alloc] initWithData:postData encoding:NSASCIIStringEncoding]); NSString *postLength = [NSString stringWithFormat:@"%d", [postData length]]; NSMutableURLRequest *request = [[NSMutableURLRequest alloc] init]; [request setURL:[NSURL […]

是否可以使用node-webkit文件解码AESencryptionvideo?

使用file-encryptor和node-webkit,可以简单地将本地video文件(webm)encryption到本地encryption文件(如myvideo.dat 。 但有没有办法解密和查看这个video? 没有临时文件?

NodeJSencryption:重新使用密码对象来提高性能

我想要nodejs和一个encryption的MongoDB数据库。 我担心表演。 考虑下面的用例: 我有一个encryption的数据库,我从中检索encryptionstring列表(例如名称)[_encrypted_name_1,_encrypted_name_2,…] 我想解密列表中的所有元素 由于我担心表演,所以我做了一些testing来搞清楚。 我观察到,encryption/解密很多小string比encryption/解密一个非常大的string要慢很多。 考虑下面的例子: var crypto = require('crypto'), _ = require('lodash'), encryptedStringArray = [], decryptedStringArray = [], encryptedLongString, NB_ITERATION = 100000, stringArray = [], longString = '', myString = 'Your Name'; function encrypt(text){ var cipher = crypto.createCipher('aes-256-cbc', 'd6F3Efeq'); var crypted = cipher.update(text, 'utf8', 'hex'); crypted += cipher.final('hex'); return crypted; } function […]

阅读Java中的encryption密码

我在javascript / nodejsencryption密码下面的代码。 我需要在Java中读取这些密码: encryptPassword: function(password, salt) { var salt = new Buffer(salt, 'base64'); return crypto.pbkdf2Sync(password, salt, 10000, 64).toString('base64'); } 我使用这种方法来创buildencryption的密码进行testing。 这是结果(如javavariables): static String password = "123456"; static String salt = "CPvFo+klD9Vh2iE07JEGXA=="; public final String encrypted = "LtStqkNQjrr+P4V8fGtnauNJNOIB7t35O5I4a4/I9lFUnMR3ckbZyT85g/wO0Da9318Wrql/y1bsY2XdpXqx+Q=="; 我试图将上面的encryption代码转换为java,使用这个http://www.javacodegeeks.com/2012/05/secure-password-storage-donts-dos-and.html : public static byte[] getEncryptedPassword(String password, byte[] salt) throws NoSuchAlgorithmException, InvalidKeySpecException { String algorithm = "PBKDF2WithHmacSHA1"; […]

mongoose – encryption和更新对象

我知道mongooseencryption文件说: 更新将在未encryption和未经身份validation的字段上正常工作,但如果涉及encryption或身份validation字段,将无法正常工作。 而且我观察到,当我使用mongoose创build方法时,我的字段被encryption到_ct字段中。 但是,如果我然后使用findByIdAndUpdate更新我的对象,我看到的字段是以纯文本(作为通过find命令从mongodb控制台输出)创build。 从保存 > db.tenants.find().pretty() { "_id" : ObjectId("554b7f8e7806c204e0c7589e"), "_ac" : BinData(0,"YdJjOUJhzDWuDE5oBU4SH33O4qM2hbotQTsF6NzDnx4hWyJfaWQiLCJfY3QiXQ=="), "_ct" : BinData(0,"YaU4z/UY3djGCKBcgMaNIFHeNp8NJ9Woyh9ahff0hRas4WD80V80JE2B8tRLUs0Qd9B7IIzHsq6O4pYub5VKJ1PIQA+/dbStZpOH/KfvPoDC6DzR5JdoAu+feU7HyFnFCMY81RZeJF5BKJylhY1+mG4="), "__v" : 0 } findByIdAndUpdate之后 > db.tenants.find().pretty() { "_id" : ObjectId("554b7f8e7806c204e0c7589e"), "_ac" : BinData(0,"YdJjOUJhzDWuDE5oBU4SH33O4qM2hbotQTsF6NzDnx4hWyJfaWQiLCJfY3QiXQ=="), "_ct" : BinData(0,"YaU4z/UY3djGCKBcgMaNIFHeNp8NJ9Woyh9ahff0hRas4WD80V80JE2B8tRLUs0Qd9B7IIzHsq6O4pYub5VKJ1PIQA+/dbStZpOH/KfvPoDC6DzR5JdoAu+feU7HyFnFCMY81RZeJF5BKJylhY1+mG4="), "__v" : 0, "userId" : ObjectId("55268f43cbfc87be221cd611"), "social" : "123-45-6789", "last" : "bar", "first" : "foo" } 有更新对象和使用mongooseencryption来维护encryption的推荐策略吗?