Golang检测pdf文件是否被加密
一、直接上代码
其原理就是将pdf文件读取到缓存,逐行遍历,检测是否有加密字段
1.代码示例
代码如下(示例):
package main
import (
"bufio"
"fmt"
"io/ioutil"
"strings"
)
func main() {
pdfData, _ := ioutil.ReadFile("./work/testSign.pdf")
pdfScanner := bufio.NewScanner(strings.NewReader(string(pdfData)))
pdfScanner.Split(bufio.ScanWords)
for pdfScanner.Scan() {
line := pdfScanner.Text()
if strings.HasPrefix(line, "/Encrypt") {
fmt.Println("has encrypt---------")
}
}
}
TODO : 如何检测pdf是否有数字签名
1.数字签名在pdf内容中是图片,逐行检测识别不能精确定位
2.目前有"https://github.com/unidoc/unipdf"依赖库,但是收费不知道情况怎样