在iOS应用程序的分析云代码上运行crypto-js的问题
Issues running crypto-js on Parse Cloud Code for iOS application
我正在使用Parse作为我的iOS应用程序的后端,并希望加密在Parse和我的iOS设备之间发送的所有数据。因此,我正在使用解析云代码,希望能够执行服务器端加密&解密以处理它发送和接收的所有数据。
显然,Parse默认有一个"crypto"模块,但由于我找不到任何文档,我继续尝试使用crypto js,将AES加密+解密的适当文件复制到我的Parse Cloud Code /cloud
文件夹中。
我遇到的问题是,我不确定crypto-js的AES加密/解密函数返回的是哪类对象。我*似乎*正在取回一个NSDictionary对象,但不知道该怎么处理它。我本以为我会收到一个NSString或NSData对象,但我似乎猜错了。
请让我知道我可以提供哪些额外信息,或者我可能做出了哪些错误的假设。
我需要在服务器端加密/解密,这是我的云代码,类似于nodeJS代码:
var crypto = require('crypto');
var cryptoAlgorithm = "aes-128-cbc"; //or whatever you algorithm you want to choose see http://nodejs.org/api/crypto.html
var cryptoPassword = "theLongAndRandomPassphrase";
var cipher = crypto.createCipher(cryptoAlgorithm,cryptoPassword);
var decipher = crypto.createDecipher(cryptoAlgorithm,cryptoPassword);
exports.myCiphering = {
encrypt:function(text){
var encrypted = cipher.update(text,'utf8','hex')
encrypted += cipher.final('hex');
return encrypted;
},
decrypt: function(text){
var decrypted = decipher.update(text,'hex','utf8')
decrypted += decipher.final('utf8');
return decrypted;
}
};
如果这个片段已经保存在"cloud/ciphering.js"中,那么你可以在云代码的任何地方使用这样的加密工具:
var text = "encryptMe";
var ciphering = require("cloud/ciphering.js").myCiphering;
var encrypted = ciphering.encrypt(text);
var decrypted = ciphering.decrypted(encrypted);
if (decrypted == text){
//the "password" is correct
}
由于Parse使用SSL,所有数据都是加密发送的,因此SSL足以确保通信的安全。
您可能希望加密数据,以便在服务器上对其进行保护,但除非您真正了解加密安全性,否则不要这样做。
纯密码或加密密码应永远不要存储,存储正确的加密和散列版本的密码。
如果你觉得你的数据足够有价值,请一位安全领域专家来设计它。很难获得正确的安全性,一个错误就会使所有数据失效。
相关文章:
- 如何在没有单词的情况下从命令行运行Node.js程序'节点'
- 从页面javascript按钮运行Node.JS
- 使函数按顺序运行[Node JS]
- 在 Google Compute Engine Debian 服务器上运行 Node.js
- 混淆Crypto.JS密码短语
- jQuery和其他从工作的jsfiddle复制到本地env时未运行的JS
- 如何在不停止的情况下永远运行node-js
- 如何在启用ES6功能的情况下运行Node.js应用程序
- 如何仅在通过node.js运行script.js时激发代码
- 安装vertx时出错(vertx运行server.js)
- 在iOS应用程序的分析云代码上运行crypto-js的问题
- 为什么可以't我得到连接客户端's的ip地址在我的服务器上运行Node.js+Openshift托管的W
- Nodejs:在节点服务器启动时运行一个js文件
- 在浏览器中运行Cucumber JS
- 运行一个js函数onchange()
- 谷歌SWIFFY无法在IE9中工作-脚本错误'运行时.js'
- 通过Crypto.js获取文件的md5sum
- 从任何目录运行Node.JS脚本
- crypto-js如何隐藏类方法
- 将C#Cryptography.Rijndael加密转换为Javascript(pref.crypto-js)