0

我尝试合并 WSSE 身份验证。我后面有一个 symfony,前面有一个应用程序 Ionic - AngularJS。我遵循了关于 WSSE 的食谱和这些教程:

http://obtao.com/blog/2013/05/create-rest-api-in-a-symfony-application/

http://obtao.com/blog/2013/06/configure-wsse-on-symfony-with-fosrestbundle/

http://obtao.com/blog/2013/09/how-to-use-wsse-in-android-app/

我很好地安装了 WSSE,我可以使用以下代码在我的应用程序中散列我的密码:

authentication.hashPassword = function(salt, clearPassword) {
  var digest = "";
  console.log('==== STARTING HASHING PASSWORD ====');
  var salted = null;
  if (!salt || salt == "") {
    salted = clearPassword;
  } else {
    salted = clearPassword + "{" + salt + "}";
  }
  digest = CryptoJS.SHA512(salted);
  for (var i=1; i<5000; i++) {
    digest = CryptoJS.SHA512(digest.toString(CryptoJS.enc.Latin1)+salted);
  }
  digest = digest.toString(CryptoJS.enc.Base64);
  console.log('==== ENDING HASHING PASSWORD ====');
  console.log(digest);
  return digest;
};

但我想用我的哈希密码生成标题(最后一个教程是用java编码的,我是java中的菜鸟)

如果我发布我的哈希密码,是否可以比较两个哈希密码?

你有什么想法来创建一个标题(或令牌)吗?

谢谢您的回答

4

1 回答 1

1

您的应用程序似乎基于 Ionic 框架。在教程中提到的“Android 应用程序”之后,我们还测试了 ionic。

请参阅https://github.com/wallabag/ionic-app(加密是“手工制作的”,但它会帮助您使用 ionic/angularjs 的标题部分)

在 app.js 中:

$http.defaults.headers.common['x-wsse'] = function() {
    return wsse.getHeaderValue(username, encryptedPassword);
};
$http.defaults.headers.common.Authorization = 'profile=UsernameToken';
于 2015-09-17T11:49:44.327 回答