【问题标题】:Generate HASHBYTES inside the JavaScript file在 JavaScript 文件中生成 HASHBYTES
【发布时间】:2016-12-25 09:36:45
【问题描述】:

我必须生成一个安全令牌。此令牌将由 WebApi 使用。我通过 JavaScript 文件请求 Webapi。这是一个 SPA 应用程序。所以我的问题是,我可以在不使用 Sql 服务器响应的情况下生成下面提到的令牌吗?

The SQL syntax in Microsoft SQL Server to generate such a token is:

SELECT HASHBYTES('MD5', convert(varchar,getdate(),112) + Mysc@re4+)

【问题讨论】:

  • 您想在 JavaScript 中生成哈希而不是使用 SQL Server 函数吗?如果是这样,请查看the functions in this question/answer
  • @Scottie 是的,正是我需要的。但是有一个问题,它会生成与上面的 Sql 一个相同的哈希吗?
  • 是的,只要您选择相同的散列算法,它就会生成相同的散列 - 例如MD5
  • 非常感谢@Scottie 你能把你的 cmets 作为答案吗?然后我可以关闭这篇文章:)

标签: javascript angularjs asp.net-web-api md5 hashbytes


【解决方案1】:

OP 的反馈:

我用过angular-md5模块。这里怎么用。

<body ng-app="YOUR_APP" ng-controller="MainCtrl">
  <img src="http://www.gravatar.com/avatar/{{ email | gravatar }}">
  <input type="email" ng-model="email" placeholder="Email Address">
  {{ message }}
</body>
<script src="http://ajax.googleapis.com/ajax/libs/angularjs/1.2.10/angular.js"></script>
<script src="app/bower_components/angular-md5/angular-md5.js"></script>
<script>
  angular.module('YOUR_APP', [
    'angular-md5', // you may also use 'ngMd5' or 'gdi2290.md5' 
    'controllers'
  ]);
  angular.module('controllers', [])
    .controller('MainCtrl', ['$scope', 'md5', function($scope, md5) {

      $scope.$watch('email' ,function() {
        $scope.message = 'Your email Hash is: ' + md5.createHash($scope.email || '');
      });

    }]);
</script> 

另一种方式:

您可以使用 Crypto-JS 库在 JavaScript 中生成 MD5 哈希:

<html>
  <script src="https://cdnjs.cloudflare.com/ajax/libs/crypto-js/3.1.2/components/core.js"></script>
  <script src="https://cdnjs.cloudflare.com/ajax/libs/crypto-js/3.1.2/components/md5.js"></script>
  <body>
    <script>
      var test = CryptoJS.MD5("string to hash");
      alert(test);
    </script>
  </body>
</html>

【讨论】:

猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2011-12-29
  • 1970-01-01
  • 2013-10-10
  • 1970-01-01
  • 2012-10-25
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多