You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用awk查找含明文私钥的文件(排除加密格式)

解决方案:用awk精准定位明文私钥文件

直接用以下awk命令即可替代原有bash脚本,完美处理含特殊字符的文件名,同时避免加密私钥的误报:

/BEGIN.*PRIVATE KEY/ {
    # 跳过已确认含明文私钥的文件,避免重复输出
    if (FILENAME in seen) next
    # 读取当前私钥标记行的下一行
    rc = getline nextline
    # 两种情况判定为明文私钥:
    # 1. 已到文件末尾(无后续行);2. 下一行不是加密标记
    if (rc == 0 || nextline !~ /^Proc-Type: 4,ENCRYPTED/) {
        print FILENAME
        seen[FILENAME] = 1
    }
    next
}

使用方式

1. 处理当前目录下指定类型文件

awk -f find_plain_private_keys.awk *.pem *.key

2. 递归处理所有文件

用find配合-exec {} +传递文件名,彻底解决bash循环的文件名缺陷:

find . -type f -exec awk '/BEGIN.*PRIVATE KEY/ { if (FILENAME in seen) next; rc=getline nextline; if (rc==0 || nextline!~/^Proc-Type: 4,ENCRYPTED/) { print FILENAME; seen[FILENAME]=1 } next }' {} +

逻辑说明

  • seen数组:记录已输出的文件名,确保每个文件只输出一次,不管内部有多少个明文私钥
  • getline nextline:读取私钥起始行的下一行,判断是否存在加密标记
  • 加密私钥的判定:私钥起始行后紧跟Proc-Type: 4,ENCRYPTED行,这类文件会被过滤;反之则判定为明文私钥文件

内容的提问来源于stack exchange,提问作者ARMs_for_the_poor

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.28 20:13:19