AngularJS中的密码加密

AngularJS中的密码加密,angularjs,Angularjs,我有一个登录页面。当用户给出用户名和密码时,我想加密密码并将其发送到服务器。我正在使用angular js应用程序,所以我也想用angular编写代码。请使用HTTPS将其发送到服务器,然后在服务器端对其进行加密/解密。出于安全原因,您不希望前端进行任何加密,这可能会导致严重的安全漏洞。使用HTTPS将其发送到服务器,然后在服务器端对其进行加密/解密。出于安全原因,您不希望前端进行任何加密,这可能会导致严重的安全漏洞。使用以下ngEncryption factory,您可以加密Controlle

我有一个登录页面。当用户给出用户名和密码时,我想加密密码并将其发送到服务器。我正在使用angular js应用程序,所以我也想用angular编写代码。请使用HTTPS将其发送到服务器,然后在服务器端对其进行加密/解密。出于安全原因,您不希望前端进行任何加密,这可能会导致严重的安全漏洞。

使用HTTPS将其发送到服务器,然后在服务器端对其进行加密/解密。出于安全原因,您不希望前端进行任何加密,这可能会导致严重的安全漏洞。

使用以下ngEncryption factory,您可以加密Controller.js文件中的数据并将其传递给apicontroller。我正在使用公钥和私钥对数据进行加密/解密。这些密钥可以在Global.asax.cs文件中的Session_Start()事件中生成

app.factory
('ngEncryption', function () {
    return {
        encrypt: function (dataForEncrypt) {
            jsRequest = {};

            var str = dataForEncrypt;
            var xmlParams = $.cookie('ClientPublicKey');
            // Create a new instance of RSACryptoServiceProvider.
            var rsa = new System.Security.Cryptography.RSACryptoServiceProvider();
            var reqArray = [];
            var reqArraySize = 200;
            if (str.length < reqArraySize) {
                var data = System.Text.Encoding.UTF8.GetBytes(str);
                // Import parameters from xml.
                rsa.FromXmlString(xmlParams);
                // Encrypt data (use OAEP padding).          

                var encryptedBytes = rsa.Encrypt(data, true);
                // Convert encrypted data to Base64.
                var encryptedString = System.Convert.ToBase64String(encryptedBytes)
                // Replace plain password with encrypted data.
                reqArray.push(encryptedString);
                //break;
            }
            else {
                var MaxCounterHeader = parseInt(Math.ceil(parseFloat(str.length / 200)));

                for (i = 0; i < MaxCounterHeader; i++) {
                    var newstring = str.substr(0, str.length > 200 ? 200 : str.length);
                    var data = System.Text.Encoding.UTF8.GetBytes(newstring);
                    rsa.FromXmlString(xmlParams);
                    var encryptedBytes = rsa.Encrypt(data, true);
                    // Convert encrypted data to Base64.
                    var encryptedString = System.Convert.ToBase64String(encryptedBytes)
                    reqArray.push(encryptedString);
                    str = str.replace(newstring, '');
                }
            }
            return JSON.stringify(reqArray);
        }
    };
});
app.factory
('ngEncryption',函数(){
返回{
加密:函数(dataForEncrypt){
jsRequest={};
var str=dataForEncrypt;
var xmlParams=$.cookie('ClientPublicKey');
//创建RSACryptoServiceProvider的新实例。
var rsa=new System.Security.Cryptography.RSACryptoServiceProvider();
var reqArray=[];
var重新排列=200;
如果(str.length<重新排列){
var data=System.Text.Encoding.UTF8.GetBytes(str);
//从xml导入参数。
rsa.FromXmlString(xmlParams);
//加密数据(使用OAEP填充)。
var encryptedBytes=rsa.Encrypt(数据,true);
//将加密数据转换为Base64。
var encryptedString=System.Convert.ToBase64String(encryptedBytes)
//用加密数据替换普通密码。
请求数组推送(加密字符串);
//中断;
}
否则{
var MaxCounterHeader=parseInt(Math.ceil(parseFloat(str.length/200));
对于(i=0;i200?200:str.length);
var data=System.Text.Encoding.UTF8.GetBytes(新闻字符串);
rsa.FromXmlString(xmlParams);
var encryptedBytes=rsa.Encrypt(数据,true);
//将加密数据转换为Base64。
var encryptedString=System.Convert.ToBase64String(encryptedBytes)
请求数组推送(加密字符串);
str=str.replace(新闻字符串“”);
}
}
返回JSON.stringify(reqArray);
}
};
});

使用以下ngEncryption工厂,您可以加密Controller.js文件中的数据并将其传递给apicontroller。我正在使用公钥和私钥对数据进行加密/解密。这些密钥可以在Global.asax.cs文件中的Session_Start()事件中生成

app.factory
('ngEncryption', function () {
    return {
        encrypt: function (dataForEncrypt) {
            jsRequest = {};

            var str = dataForEncrypt;
            var xmlParams = $.cookie('ClientPublicKey');
            // Create a new instance of RSACryptoServiceProvider.
            var rsa = new System.Security.Cryptography.RSACryptoServiceProvider();
            var reqArray = [];
            var reqArraySize = 200;
            if (str.length < reqArraySize) {
                var data = System.Text.Encoding.UTF8.GetBytes(str);
                // Import parameters from xml.
                rsa.FromXmlString(xmlParams);
                // Encrypt data (use OAEP padding).          

                var encryptedBytes = rsa.Encrypt(data, true);
                // Convert encrypted data to Base64.
                var encryptedString = System.Convert.ToBase64String(encryptedBytes)
                // Replace plain password with encrypted data.
                reqArray.push(encryptedString);
                //break;
            }
            else {
                var MaxCounterHeader = parseInt(Math.ceil(parseFloat(str.length / 200)));

                for (i = 0; i < MaxCounterHeader; i++) {
                    var newstring = str.substr(0, str.length > 200 ? 200 : str.length);
                    var data = System.Text.Encoding.UTF8.GetBytes(newstring);
                    rsa.FromXmlString(xmlParams);
                    var encryptedBytes = rsa.Encrypt(data, true);
                    // Convert encrypted data to Base64.
                    var encryptedString = System.Convert.ToBase64String(encryptedBytes)
                    reqArray.push(encryptedString);
                    str = str.replace(newstring, '');
                }
            }
            return JSON.stringify(reqArray);
        }
    };
});
app.factory
('ngEncryption',函数(){
返回{
加密:函数(dataForEncrypt){
jsRequest={};
var str=dataForEncrypt;
var xmlParams=$.cookie('ClientPublicKey');
//创建RSACryptoServiceProvider的新实例。
var rsa=new System.Security.Cryptography.RSACryptoServiceProvider();
var reqArray=[];
var重新排列=200;
如果(str.length<重新排列){
var data=System.Text.Encoding.UTF8.GetBytes(str);
//从xml导入参数。
rsa.FromXmlString(xmlParams);
//加密数据(使用OAEP填充)。
var encryptedBytes=rsa.Encrypt(数据,true);
//将加密数据转换为Base64。
var encryptedString=System.Convert.ToBase64String(encryptedBytes)
//用加密数据替换普通密码。
请求数组推送(加密字符串);
//中断;
}
否则{
var MaxCounterHeader=parseInt(Math.ceil(parseFloat(str.length/200));
对于(i=0;i200?200:str.length);
var data=System.Text.Encoding.UTF8.GetBytes(新闻字符串);
rsa.FromXmlString(xmlParams);
var encryptedBytes=rsa.Encrypt(数据,true);
//将加密数据转换为Base64。
var encryptedString=System.Convert.ToBase64String(encryptedBytes)
请求数组推送(加密字符串);
str=str.replace(新闻字符串“”);
}
}
返回JSON.stringify(reqArray);
}
};
});

最好使用https在服务器上发送安全数据和加密。 如果仍要在客户端代码中加密,则可以使用SHA256、SHA1或MD5。很多都有。Angular crypto提供了许多JS。 在html页面中包含对JS的引用,并在控制器的行下方包含对JS的引用

 CryptoJS.SHA1($scope.newCustomer.password)

为了获得良好的安全性,在服务器端对哈希密码进行加密。

最好使用https在服务器上发送安全数据和加密。 如果仍要在客户端代码中加密,则可以使用SHA256、SHA1或MD5。很多都有。Angular crypto提供了许多JS。 在html页面中包含对JS的引用,并在控制器的行下方包含对JS的引用

 CryptoJS.SHA1($scope.newCustomer.password)

为了更好的安全性,在服务器端对散列密码进行加密。

您在寻找https吗?@KISHAN PATI我建议您不要使用angular加密密码,使用您的后端技术java或您正在使用的任何东西不要加密密码,通过HTTPS发送,并让后端完成它的工作。您可以使用
angularjs crypto
加密和解密密码,在将密码发送到服务器之前加密密码可以实现什么?什么