Javascript 是否有可能使;密码";不刷新窗口的验证?

Javascript 是否有可能使;密码";不刷新窗口的验证?,javascript,mysql,passwords,refresh,Javascript,Mysql,Passwords,Refresh,我已经制作了一个简单的web应用程序,在这个应用程序中,很多事情都是在不刷新窗口的情况下完成的。现在我面临一个我以前没有意识到的问题。如果我找不到解决方案,我将不得不重新设计整个应用程序,这将花费大量时间,可能会扼杀一些使用它的酷性。哎哟好,回到问题上来 为了揭示——比方说——网站的“秘密”部分,用户必须输入一种。。。输入密码并单击“确认”。但我不知道如何存储密码以防止用户阅读,例如在网站的源代码中 目前,我使用mysql数据库——我连接它,用PHP读取密码并将其存储在全局javascript变

我已经制作了一个简单的web应用程序,在这个应用程序中,很多事情都是在不刷新窗口的情况下完成的。现在我面临一个我以前没有意识到的问题。如果我找不到解决方案,我将不得不重新设计整个应用程序,这将花费大量时间,可能会扼杀一些使用它的酷性。哎哟好,回到问题上来

为了揭示——比方说——网站的“秘密”部分,用户必须输入一种。。。输入密码并单击“确认”。但我不知道如何存储密码以防止用户阅读,例如在网站的源代码中

目前,我使用mysql数据库——我连接它,用PHP读取密码并将其存储在全局javascript变量中。但在输入源代码后,它当然是可读的


有可能做这样的事吗?是否可以秘密检查密码,而不必刷新站点并使用PHP进行检查?

您可以使用MD5或SHA1对密码进行编码,给您一个由32或40个随机字符组成的字符串。此字符串很难(并非不可能)转换为原始密码

MD5和SHA1的属性是,给定的值将始终产生相同的哈希值。例如,如果您将“stackoverflow”散列到123ABC,然后在另一台机器上再次执行此操作,则该机器也将生成123ABC


因此,只需使用相同的算法对用户输入的密码进行编码,就可以比较这两个哈希值。如果它们匹配,则密码是正确的。

您可以使用MD5或SHA1对密码进行编码,给您一个由32或40个随机字符组成的字符串。此字符串很难(并非不可能)转换为原始密码

MD5和SHA1的属性是,给定的值将始终产生相同的哈希值。例如,如果您将“stackoverflow”散列到123ABC,然后在另一台机器上再次执行此操作,则该机器也将生成123ABC


因此,只需使用相同的算法对用户输入的密码进行编码,就可以比较这两个哈希值。如果它们匹配,则密码是正确的。

我建议您在实施之前询问。现在似乎很少有人这么做

首先,信不信由你,你不想在任何地方存储密码。你想用一种叫做a的东西来代替。使用这种技术,您最终会得到一个基于密码的随机代码,可以用来验证用户是否拥有他们所说的密码


其次,您需要使用Ajax请求在Javascript中为您执行此检查。我更喜欢使用这个库,因为它在Javascript上提供了一个非常好的、跨平台的、经过测试的、易于使用的包装器,这样做很容易。

我建议您在实现之前询问一下。现在似乎很少有人这么做

首先,信不信由你,你不想在任何地方存储密码。你想用一种叫做a的东西来代替。使用这种技术,您最终会得到一个基于密码的随机代码,可以用来验证用户是否拥有他们所说的密码


其次,您需要使用Ajax请求在Javascript中为您执行此检查。我更喜欢使用这个库,因为它在Javascript上提供了一个非常好的、跨平台的、经过测试的、易于使用的包装器,这样做很容易。

我在python中实现了一个这样的应用程序,并采用了以下方法
1) 通过向后端发送ajax post请求来执行一次性身份验证。您可以使用库(jquery、dojo等)或简单javascript,我选择后者。
2) 成功进行身份验证时,使用uuid库生成一个随机唯一id,我们称之为会话id。Php有以下库,可以为您执行此操作
3) 将此会话id存储在cookie和/或变量中
4) 将会话id和用户id存储在memcache或数据库中,以检查会话是否处于活动状态。


我知道php有一个内置程序,所以第2步将被修改,第3步和第4步的繁重工作将为您完成。

我已经在python中实现了一个这样的应用程序,并采用了以下方法
1) 通过向后端发送ajax post请求来执行一次性身份验证。您可以使用库(jquery、dojo等)或简单javascript,我选择后者。
2) 成功进行身份验证时,使用uuid库生成一个随机唯一id,我们称之为会话id。Php有以下库,可以为您执行此操作
3) 将此会话id存储在cookie和/或变量中
4) 将会话id和用户id存储在memcache或数据库中,以检查会话是否处于活动状态。


我知道php有一个内置的,所以第2步将被修改,第3步和第4步的繁重工作将为您完成。

这是一个好主意。。。但重新设计似乎不可避免——为什么好的,我可以通过制作“salted hash”来检查密码,但是“站点的秘密部分”内容呢?我希望它在检查密码之前也是不可见的。。。而这正是散列法无法解决的问题。啊。。。或者有办法?这是个好主意。。。但重新设计似乎不可避免——为什么好的,我可以通过制作“salted hash”来检查密码,但是“站点的秘密部分”内容呢?我希望它在检查密码之前也是不可见的。。。而这正是散列法无法解决的问题。啊。。。还是有办法?