|
|
1
18
我不会太担心生成难以置信的强一次性密码。让密码变长,这不应该是蛮力授予你的问题,限制密码的有效时间。如果密码仅在1小时内有效,那么如果密码保持未使用状态,则不会出现问题。在这段时间内,不太可能有人会用暴力破解它。 同样重要的是,您只允许一次性密码工作一次。这样,如果密码被截取,用户将注意到一次性密码何时过期,并可以采取适当的操作。 我要去阿帕奇公地 RandomStringUtils 密码是10-15个字母和数字。 …尽管这一直是一个关于你有多偏执的问题。对于一个普通的Web应用程序来说,这个解决方案是很好的,但对于银行来说还不够好… |
|
|
2
6
它在.NET中,但转换起来应该很简单。对大多数人来说可能有点太多了,但这是我在应用程序中经常使用的一种入门级实现。这是我一段时间前发现的一个实现,并做了一些修改,我记不起原来的作者,但我会做一个快速的搜索,看看我是否能给他适当的学分。
编辑我想我从发布的代码开始 http://www.obviex.com/Samples/Password.aspx . 尽管代码现在还有一些特性。 |
|
|
3
4
下面是一个使用commons的例子。它创建一个8到20个字符长的字母数字密码。
更新 randomutils.nextint返回一个介于0(含)和指定值(不含)之间的数字,因此若要获取介于8到20个字符(含)之间的值,参数值应为13。我已经更正了上面的代码。 更新 正如下面的注释中所指出的,可以不使用StringBuffer编写它。以下是修改后的单行版本:
|
|
|
4
4
对于那些感兴趣的人来说,这里是马修的代码,转换为Java
单元测试
|
|
|
5
0
Password Safe 是开放源代码(在艺术许可证下),包括密码生成代码。 |
|
|
6
0
您可以使用随机和内置的MessageDigest实现轻松实现它。
|
|
|
7
0
我添加了一个类似C/Java版本的Golang实现。它在Apache2.0下可用。源位于此处: https://github.com/deftlabs/dlshared/blob/master/password_utils.go |