Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/77.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
JavaScript加密函数_Javascript_Html_Dom - Fatal编程技术网

JavaScript加密函数

JavaScript加密函数,javascript,html,dom,Javascript,Html,Dom,我需要创建一个基本的JavaScript加密函数来加密登录页面上的用户名和密码。我能找到的唯一信息是使用在线软件提供加密,但我需要使用JavaScript并在登录页面的HTML代码中放置一个简单的加密函数 我还想更好地理解在使用JavaScript引用加密函数时,类型、应用程序和方法的实际含义 谢谢。正如评论中提到的,javascript加密并不是很安全,正如文章中所描述的:,但基本上,有人可以查看源代码,通过使用调试工具,他们可以确定加密是如何完成的 有时,人们也可以在您发送源文件时获取源文件

我需要创建一个基本的JavaScript加密函数来加密登录页面上的用户名和密码。我能找到的唯一信息是使用在线软件提供加密,但我需要使用JavaScript并在登录页面的HTML代码中放置一个简单的加密函数

我还想更好地理解在使用JavaScript引用加密函数时,类型、应用程序和方法的实际含义


谢谢。

正如评论中提到的,javascript加密并不是很安全,正如文章中所描述的:,但基本上,有人可以查看源代码,通过使用调试工具,他们可以确定加密是如何完成的

有时,人们也可以在您发送源文件时获取源文件

现在,考虑到这一点,如果您不完全信任SSL,并且希望通过Internet发送敏感信息,那么加密可能很有用

因此,您遇到了如何加密的问题

RSA加密适用于小消息,因为它速度慢,所以,例如,您需要加密密码。然后,服务器可能包含它为此页面生成的公钥,以及您的程序加密

加密不会很简单,但是你可以看看它的来源,它可能会帮助你

举个例子,你可以看看这个,我从哪里得到的:

function RSAdoEncryption()
{
 var mod=new Array();
 var exp=new Array();

 var s = r2s(document.t.pkey.value);
 var l = Math.floor((s.charCodeAt(0)*256 + s.charCodeAt(1)+7)/8);

 mod = mpi2b(s.substr(0,l+2));
 exp = mpi2b(s.substr(l+2));

 var p = document.rsatest.plaintext.value+String.fromCharCode(1);
 var pl = p.length;

 if(pl > l-3)
 {
    alert('In this example plain text length must be less than modulus of '+(l-3)+' bytes');
    return;
 }

 var b=s2b(p);

 var t;
 var i;

 var startTime=new Date();
 var enc=RSAencrypt(b,exp,mod);
 var endTime=new Date();

 document.rsatest.ciphertext.value=s2hex(b2s(enc));
 document.rsatest.howLong.value=(endTime.getTime()-startTime.getTime())/1000.0;
}
你的最后一句话没有意义,但我猜

加密有两种基本类型,对称和非对称。RSA是不对称的一个例子,因此用于加密的密钥与用于解密的密钥不同。这就是公钥和私钥的含义。一个密钥与其他人共享,但如果您知道公钥,则无法帮助您找到私钥

对称加密是指使用相同的密钥进行加密和解密。IDEA、AES、Blowfish都是对称密钥的例子


我希望该方法是加密算法,但它也可以引用,也许,在末尾添加额外的垃圾或随机字符,以使消息更长

在前言中,我想说的是,不建议您创建自己的加密方案或实现供您以外的任何人使用。此外,尽管经过良好测试和熟知的库比创建自己的库要好,但您无法保证任何安全性

话虽如此,这里有几个看起来很有前途的加密库

要加密密码,通常最好使用单向散列函数。看一看。下面是一个使用bcrypt演示在生成salt后对密码进行哈希处理的快速示例

var salt = bcrypt.gensalt(5);
bcrypt.hashpw('mypassword', salt, 
    function result(hashedpassword) {}, 
    function callback() {}
);
请记住,web应用程序存在许多漏洞。在处理安全性时,应考虑运行应用程序的三个主要部分(即客户端、服务器和传输)。SSL对于保护传输中的数据是必要的,但同样,由于存在解决方法,安全性无法保证。此外,攻击者还可以对客户端和服务器发起攻击

查看OWASP(开放式Web应用程序安全项目)漏洞列表。OWASP维护此列表以表示最常见和最关键的web应用程序安全缺陷


安全性可能是一个非常敏感的话题,许多人忽视了为面向公众的应用程序提供强大安全系统的重要性。诚然,如果你正在从事个人项目,或者你的应用程序不处理任何机密信息,那么你就不必太担心这一点。

如果你在寻找安全性,只需使用https,加密不会起任何作用。此外@DaveChen评论说,JS是一个错误的环境,因为任何有权查看JS文件的人都可以使用您设法实现的任何加密背后的机制和算法。加密只有在服务器上才有意义。请看CryptoJS或asmcrypto.js,它们的性能更好。谢谢大家提供的信息。我在大学里找到了一个加密函数,并试图让它工作。