Php 为WSSE身份验证生成加密密码

Php 为WSSE身份验证生成加密密码,php,symfony,encryption,fosuserbundle,ws-security,Php,Symfony,Encryption,Fosuserbundle,Ws Security,我有一个backboneJS应用程序,可以与使用Symfony2编写的Restfull API进行通信。 为了对用户进行身份验证,将向所有查询发送HTTP头(WSSE) 标题如下所示: X-WSSE:UsernameToken Username="foo@goo.com", PasswordDigest="clrGx4hSEyC3zdndd04/51yuee7Q=", Nonce="VURQQWQ0RTBMSGo4enBCN05GSjNuTGhsSjF3PQ==", Created="2014-

我有一个backboneJS应用程序,可以与使用Symfony2编写的Restfull API进行通信。 为了对用户进行身份验证,将向所有查询发送HTTP头(WSSE)

标题如下所示:

X-WSSE:UsernameToken Username="foo@goo.com", PasswordDigest="clrGx4hSEyC3zdndd04/51yuee7Q=", Nonce="VURQQWQ0RTBMSGo4enBCN05GSjNuTGhsSjF3PQ==", Created="2014-05-09T15:11:06+02:00"
为了生成passwordDigest,我需要对用户密码进行加密。为了测试,我把这个密码直接加密在我的前端

因此,为了创建一个générique方法,而不是在网络上发送加密的密码,我需要在前端生成相同的加密密码

用户正在尝试连接:

  • 用户写的是电子邮件
  • 应用程序尝试获取此电子邮件的盐
  • 用户写入的是密码
  • 应用程序创建了与此基础相同的加密密码
有人知道如何用密码(由用户输入)和salt在客户端(javascript)加密密码吗


谢谢你

客户端上有各种可用于加密的库。是一个库,它在JS中实现了一些消息摘要函数,包括您当前正在使用的SHA-1。

密码是用FOSUserBundle sha512加密的。在我的security.yml中,我有这样一个:FOS\UserBundle\Model\UserInterface:sha512谢谢您的回复:)Forge不支持SHA-512,可能是出于性能原因。我建议换成SHA-256。您只需在配置中将
sha512
替换为
sha256
。Symfony core编码器使用PHP函数检查系统支持的算法!谢谢你;)