用于在代码存储库中搜索或抓取复杂密码的正则表达式

标签 regex linux grep notepad++

我需要一个正则表达式来与 Notepad++“在文件中查找”或 Linux 上的 find 和 grep 命令一起使用 find $dirs -type f -name '*.php' -o -name '*.sh' -exec grep -rHn "REGEX" 确保我们的代码存储库中没有硬编码密码 密码长度至少为8个字符,最多为12个字符,且至少包含1个小写、大写、数字字符,可以包含特殊字符,也可以不包含特殊字符

这是我想要匹配的示例密码

sH@R3d1nH3re

f0llOwUp

谢谢

最佳答案

几乎不可能将密码与任何其他文本/代码区分开来,但这里是您要查找的正则表达式,它将匹配除空格之外的任何内容,包括单引号和双引号:

[!-~]{8,12}

如果您不想包含引号并且密码必须包含引号,请尝试此操作(不确定是否需要转义起始括号,但应该不会造成伤害):

['"][!#-&(-~]{8,12}['"]

请注意,对于 grep,您必须使用 -P 选项并转义双引号,例如:

grep -P "['\"][!#-&(-~]{8,12}['\"]"

如果你想确保至少有一个小写字母和至少一个大写字母和至少一个数字,你必须使用前瞻,这会更完整,但这个网站底部有一个示例和解释(注意:我无法让前瞻在 Notepad++ 中工作): https://www.safaribooksonline.com/library/view/regular-expressions-cookbook/9781449327453/ch04s19.html#validation-password-variations

关于用于在代码存储库中搜索或抓取复杂密码的正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29639240/

相关文章:

regex - 如何在 Logstash 翻译过滤器的 Yaml 文件中使用正则表达式?

linux - 如何在linux上获取带有aptitude的源码包?

c++ - 命名空间 ‘std’ 中的“ostream”未命名类型

linux - Linux 中 bin 目录应该放在哪里?

linux - 创建一个 oneliner 来导入数据库

awk - 从日志中统计数据

javascript - 如何删除Javascript中的特定空格但不是所有空格

java - 使用正则表达式提取标签和标签之间的文本

c - 现代 Unix 工具是用什么编程语言编写的?

java - 基于正则表达式拆分字符串但保留分隔符