我的系统中有很多pdf。我需要检查所有这些文件是否都是: -
我正在使用python来执行此操作。直到现在我已经能够使用PyPDF2从签名字典中获取/Content
。内容是pkcs7 - der编码。有没有办法可以提取签名的邮件摘要?
类似的操作在C
this answer
答案 0 :(得分:1)
DER是二进制格式,其结构称为ASN.1。 PEM格式是Base64编码的DER。
这个在线PEM解码器非常有用:http://lapo.it/asn1js/在您识别出其中的消息签名后,您可以编写代码以通过任何ASN.1库提取它。
答案 1 :(得分:0)
SignedData,CADES或CMS签名的PKCS#7 1.5子类型包含SignerInfo块defined here的集合,基本上包含:
SignedAttributes可能包含,具体取决于签名的类型:
如果我们仅使用找到的第一个签名并使用my fork的pyx509来简化此操作,则可能是某种类型的代码(未经测试):
public static void saveCookie(Context context, String cookie) {
if (cookie == null) {
return;
}
// Save in the preferences
SharedPreferences sharedPreferences = PreferenceManager.getDefaultSharedPreferences(context.getApplicationContext());
if (null == sharedPreferences) {
return;
}
SharedPreferences.Editor editor = sharedPreferences.edit();
editor.putString("cookie", cookie);
editor.commit();
}
public static String getCookie(Context context)
{
SharedPreferences sharedPreferences = PreferenceManager.getDefaultSharedPreferences(context.getApplicationContext());
String cookie = sharedPreferences.getString("cookie", "");
if (cookie.contains("expires")) {
removeCookie(context);
return "";
}
return cookie;
}