防止pwgen -y生成反引号或引号? (或以其他方式消毒产量)

时间:2017-11-16 17:13:08

标签: bash passwords

我在bash脚本中使用了pwgen。为了安全起见,我们必须使用-y标志来包含至少一个特殊字符。但是,这经常会返回一个或多个`或"打破了周围的剧本。

我可以阻止生成这些字符吗?如果没有,那么删除,替换或以其他方式清理pwgen输出以排除这些字符的最简洁方法是什么?

我现在的pwgen是;

intPW=$(pwgen -c -n -y -B -1 15)

这意味着intPW的价值可能是这样的;

iqui`c:ee4so4Ch
hph7eew"ohr9Ee

我需要保证每个密码中都有一个符号,而不是其中一个有问题的符号。

我在替换方面可以想到的任何事情,从if循环到sed,都会因为我试图瞄准反引号而中断。

2 个答案:

答案 0 :(得分:1)

假设您还不需要保护单引号字符,则以下内容应该没问题:

intPW=$(pwgen -c -n -y -B -1 15 | tr '`"' '$@')

这会将`转换为$和'转换为@。随意选择你喜欢的任何其他角色!

答案 1 :(得分:1)

如果您拥有pwgen版本2.08,则可以使用新选项-r排除不需要的字符

pwgen -cnyB1 -r \`\" 15