2011-01-10 62 views
0

我们有一个分布式应用程序和db表与用户。他们的密码将被存储为散列值。应用程序由win服务,winforms,asp和java程序组成。 其中一位Java开发人员具有为字符串(带有硬编码密钥)计算md5散列的功能,并提供在其他地方使用它(这意味着将java代码导入到c#并在需要它的应用程序上进行扩展)。这是一个好主意吗? 你的建议是什么?在这种情况下,人们通常会做什么?分布式应用程序,密码哈希

P.S.我们使用Oracle数据库。

+0

甲骨文的版本和版本(9i的标准, 11g企业等)? – APC 2011-01-10 18:18:04

+0

Oracle 9.但我想知道是否有统一的计算方法,所以所有的应用程序都会重用它。 – Nickolodeon 2011-01-10 18:28:47

回答

1

您可以让所有应用程序都将密码传递给数据库并在db中有一个存储过程,用于根据存储的散列检查给定的密码。

有计算哈希值标准的PL/SQL函数:DBMS_OBFUSCATION_TOOLKIT.MD5

你可以找到这个方法在这里的一个更完整的写了起来:​​3210

1

Md5确实没有密钥,因为它不是加密的散列。 Md5哈希是内置到Java和C#。

任何机构需要写什么代码?它在每种实现语言中最多只有几行......再加上一些测试来检查每个人都会得到相同的结果,大小写等。