首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用同一个数据库在java和nodejs中生成散列和salt

如何使用同一个数据库在java和nodejs中生成散列和salt
EN

Stack Overflow用户
提问于 2014-01-21 08:41:31
回答 2查看 1K关注 0票数 0

我们使用一个db(mongo)作为我们的移动(Nodejs)和桌面(Java)应用程序。

问题是,我们希望为这两个应用程序使用不同的登录/注册rest服务。现在,我们的注册模块仅用java(加密)实现。我们使用java的SecureRandom库创建一个salt,放入数据库,然后使用它生成密码哈希。然后,当用户登录时,我们只获取用户的salt (假设它存在),然后使用db中的salt再次生成哈希密码,然后比较数据库中生成的哈希密码。

问题是在nodejs中,我找不到任何模块/库来生成与java中生成的盐完全一样的盐。

我需要在nodejs中散列未加密的密码,然后将其与在java中生成的db中的散列密码进行比较。

我该如何处理这个问题?任何帮助都将不胜感激。谢谢。

EN

回答 2

Stack Overflow用户

发布于 2014-01-21 09:48:59

没有必要创建完全相同的盐,因为盐只创建一次,然后存储在某处。所有其他人都得用这种盐。因此,如果node.js有不同的盐生成(即Math.random()),那么就可以了,因为

  • 你通常只在河的一侧制造盐。
  • 如果你在两边创建它,另一方无论如何都必须使用它。

您需要的是相同的散列机制!这应该很容易,因为在Java和node.js中有许多相互兼容的散列算法实现(即md5或sha3)。

票数 3
EN

Stack Overflow用户

发布于 2014-01-21 09:52:08

问题是在nodejs中,我找不到任何模块/库来生成与java中生成的盐完全一样的盐。

如果你能找到一种方法在不同的时间产生两种完全相同的盐,那么它就超越了盐渍的目的,因为最好的盐是尽可能随机的。您需要做的是从数据库中获取salt,Java对其进行选通,并使用获取的salt来执行散列。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21253040

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档