Tag: encryption

为什么Node.js的符号和CryptographicEngine符号结果有区别?

我正在尝试使用UWP的CryptographicEngine来validationNode.js Crypto API所做的签名哈希。 由于validation方法保持返回false,我现在正在比较两个签名方法。 当我使用这两个系统签署简单的string时,我得到不同的结果。 这是Crypto JS代码: //Generate signer and hasher var signature = crypto.createSign('RSA-SHA256'); var hasher = crypto.createHash("SHA256"); hasher.update('mydata'); //Generate hash from data hashresult = hasher.digest('base64'); signature.update(hashresult); //Read private key var inputkey = fs.readFileSync('private.pem'); //Sign Data var result = signature.sign(inputkey, 'base64'); 这里是CryptographicEngine代码: IBuffer buffer = CryptographicBuffer.ConvertStringToBinary("mydata", BinaryStringEncoding.Utf8); HashAlgorithmProvider hashAlgorithm = HashAlgorithmProvider.OpenAlgorithm(HashAlgorithmNames.Sha256); IBuffer hashBuffer = […]

在JavaScript环境中的安全ID

我想用JavaScript生成一个安全的随机string。 关于JavaScript的安全性没有太多的东西,因为它通常用在客户端 – 在这种情况下,我在服务器端使用Node.js。 我可以创build一个for循环,每次在string中添加一个随机字符 – 但是有没有任何库,函数或其他任何可以使用npm安装的,使用类似SSL安全性的代码,encryption或类似的东西? 另外,请回答各种选项 – 这将是最有用的。 Stackoverflow似乎认为有另一个类似于这个的答案 。 但我不同意。 这个问题问: 有没有更优雅的方式? – 到现有的一段代码。 我的问题比较宽泛,对于JavaScript中没有任何随机string生成知识的人可能会有所帮助。 而且,这个问题可以吸引更广泛的答案,给出许多不同的方法,可以比较。

我如何解密在PHP中由npm-rsa创build的数据?

我用JSencryption浏览器中的数据,然后试图用PHP在后端解密。 在JS中,我使用了使用browserify构build的npm-rsa。 在PHP中,我使用phpseclib 我的JS: key = new rsa({ environment: 'browser', encryptionScheme: 'pkcs1_oaep', signingScheme: 'pkcs1-sha256', b: 2048 }); cleartext = 'this is a test'; console.log(key.encrypt(cleartext, 'base64')); console.log(this.key.exportKey('pkcs8-private-pem')); 然后我把公钥和密文带到PHP中: $rsa = new RSA(); $rsa->load($privkey, 'pkcs8'); $cleartext = $rsa->decrypt(base64_decode($cyphertext)); 当我运行这个, $cleartext为null 。 使用Xdebug,我可以看到$rsa->load($pubkey, 'pkcs8'); 似乎是填充$rsa的模数,指数,素数,系数等字段。 我甚至试过$rsa->setHash('sha256'); 之前调用decrypt() ,但是我的理解是哈希方法只用于encryption,甚至不用于解密。 另外,我知道这是不安全的,因为我分享私钥。 我只是想validation两个库之间的兼容性。 我已经testing过,我可以使用这两个库独立encryption和解密,但从JS库的密钥到PHP库我无法去工作。 编辑:导出私钥: —–BEGIN PRIVATE KEY—– MIIEvwIBADANBgkqhkiG9w0BAQEFAASCBKkwggSlAgEAAoIBAQDX7/224Phogd/B 4DGOf81GeNAkE0bAWieN9Tmq6S1Xe0iMY56J9hJ86HveCcJcJCMNAJtGVPjOObNf HZ58CUrqyMoj6VJ8wXGVPZuwkvBQrVFg4k/h+8+b3p5Z0cb8J9m8WWpnL/hifoyt […]

crypto-js如何隐藏类方法?

从这开始 import crypto from 'crypto-js' global.crypto = crypto 当我从浏览器控制台访问encryption时,我得到以下错误 crypto['AES'].encrypt('MyString', 'pass').toString() // Uncaught TypeError: Cannot read property 'encrypt' of undefined(…) 但是当我从Node访问它的时候,它的工作原理是-_- crypto['AES'].encrypt('MyString','pass').toString() // Encrypted String Crypto JS如何做到这一点? 不能直接从浏览器访问,而是在节点访问?

iOS Swift与Node JSencryption不同的输出

我不知道我的Node JS代码有什么问题。 节点JS的输出缺less一些字符,而不是iOS Swift中的输出。 我的节点JS代码: var crypto = require('crypto'); var CRYPTO_ALGORITHM = "aes-256-ctr"; var CRYPTO_PASSWORD = "3zTvzr3p67VC61jmV54rIYu1545x4TlY"; var CRYPTO_IV = "0123456789012345"; var string_data = "OLIVER MARTINEZ OLIVER"; var cipher = crypto.createCipheriv(CRYPTO_ALGORITHM, CRYPTO_PASSWORD, CRYPTO_IV); var encrypted = cipher.update(string_data, "utf8", "hex"); encrypted += cipher.final("hex"); // to hex console.log("encrypted final: " + encrypted); // ————————————————————— // var encrypted_string […]

在NodeJS应用程序中显示来自AlwaysEncrypted列的数据?

我在Azure中有一个SQL Server数据库,由.NET应用程序和NodeJS应用程序访问 。 我只是将AlwaysEncrypted应用于包含敏感信息的表列。 我使用Azure密钥保pipe库来存储encryption密钥。 我想知道是否有可能在我的NodeJS应用程序中显示(解密)的数据? 解决这个问题的方法是通过.NET应用程序中的API端点公开要查询的数据,然后从NodeJS应用程序中调用该端点,但是我正在寻找一种更优雅的方法 。

用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

使用encryption库在NodeJS中创buildPGP兼容签名

在看encryption库我看它有能力签署数据。 有没有人知道如果一个PGP兼容的签名就像encryptionencryption库的符号命令的输出一样简单? 我有一个应用程序,需要签署和使用PGP只签署数据。 我看了OpenGPGJS项目; 但是当我使用我的应用程序的时候会炸掉它 。 我一直在尝试使用kbgpg,但是他们的文档并不是那么好, 当我按照他们默认的签名数据的例子,当我试图使用Kleopatra来validation一切都是正确的时候,签名甚至不被识别为签名。 即使我将“GPG MESSAGE”块改为“PGP SIGNATURE”块,也是如此。 由于我不需要encryption,只是签名,我以为直接使用Crypto库可能是最简单的解决scheme,但我很难find文档来validation它可以轻松完成。

RSAencryption之间的c + +和node.js

我必须通过networking发送一些encryption的数据(websocket) 我使用下面的node.js模块生成了一个密钥对: https://github.com/juliangruber/keypair 我的公钥像这样: —–BEGIN RSA PUBLIC KEY—– MIIBCgKCAQEAlUiMDQsBgj5P/T86w/eg9MXUj8M4WMVihP8YzmDxMqCFb7D+w4N/1XcxWxQT …. Wo+SRCsr6npfp1ctDhMtkXIeNT4lKf3qUGhP5tbx/TreaNF/d8zCeinGR/KeBGadMwIDAQAB —–END RSA PUBLIC KEY—– 在C ++代码中,我生成了一个RSA类,通过char * const char rsaKey1[] = "—–BEGIN RSA PUBLIC KEY—–\n" "MIIBCgKCAQEAlUiMDQsBgj5P/T86w/eg9MXUj8M4WMVihP8YzmDxMqCFb7D+w4N/1XcxWxQT\n" …. "Wo+SRCsr6npfp1ctDhMtkXIeNT4lKf3qUGhP5tbx/TreaNF/d8zCeinGR/KeBGadMwIDAQAB\n" "—–END RSA PUBLIC KEY—–\n"; BIO* bio = BIO_new_mem_buf( rsaKey1, strlen(rsaKey1)); m_rsaPubKey = PEM_read_bio_RSAPublicKey(bio, NULL, NULL, NULL); usigned m_rsaPubKey,我可以用encryption的数据生成一个unsigned char的std :: vector std::vector<u8> Rsa::encrypt(std::string & msg) { […]

在SSL上运行MEAN堆栈

我想通过https而不是http托pipe我的网站。 我使用AngularJs作为我的前端和NodeJs作为我的后端。 我将使用https://letsencrypt.org/获取SSL证书。 我无法find在https上运行这两个Web服务器的方法。 注意:我不想通过url分开前端和后端。 我希望我明确expression我的观点。 任何帮助表示赞赏?