微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

重新实现mkpasswd

在Linux上,我习惯于使用mkpasswd生成随机密码,但在OS X上我没有这个命令。 我不想每次都打开我的vps,而是想用Java来实现它。 我所做的是随机挑选4个小写字母,2个大写字母,2个符号(/等等)和2个数字。 然后我创build一个向量,并洗牌。

你认为这是足够好的随机性吗?

Linux上的Java内存使用情况

如何在Java中取消Windows文件名的转换?

Java PopUp Menu&Floating Box在顶部

如何在Windows中查找某个特定进程的cpu使用情况

SWT禁用shell全屏模式

是的。 如果你正在使用java.util.Random :

这个类的一个实例被用来产生一个随机数字流。 该类使用48位种子,使用线性同余公式进行修改。 (见Donald knuth,“计算机编程的艺术”,第2卷,第3.2.1节)

由Random类实现的算法使用受保护的实用程序方法,每次调用都可以提供多达32个伪随机生成的位。

编辑

在回应评论时:

/** * Creates a new random number generator. This constructor sets * the seed of the random number generator to a value very likely * to be distinct from any other invocation of this constructor. */ public Random() { this(++seedUniquifier + System.nanoTime()); } private static volatile long seedUniquifier = 8682522807148012L;

如果使用java.security.SecureRandom而不是java.util.Random,那么它可能是安全的。 SecureRandom提供了一个密码强的伪随机数字发生器(PRNG)”。 即它确保种子不容易被猜测,并且产生的数字具有高熵。

在Mac端口中有一个类似的pwgen命令。

取决于你的熵来自哪里。 使用rand()或类似的函数,您的特定语言可能不安全。

在OSX上,你可以使用/ dev / random我想。

这可能是好的,但你应该允许一些密码长度的随机化。

如果你的程序变得流行起来,那么密码长度就是公众所知的一个弱点。 还要随机确定小写:大写:符号:数字的确切比例。

为什么不在你的OS X主机上编译mkpasswd呢?

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐