标签: digital-signature

使用delphi进行简单的数字签名

我正在寻找一个简单的解决方案来生成一对密钥(公共/私人)加密/散列一个字符串,然后能够检查该字符串是否使用公钥加密/散列。

是否有一个简单的解决方案(CryptoAPI)?

我正在寻找一个起点。

delphi digital-signature

5
推荐指数
1
解决办法
2680
查看次数

在 Python 中验证数字签名的 PDF

我目前正在使用 Python 处理一些 PDF 处理代码。对于这个项目,软件需要能够验证 PDF 是否具有有效的数字签名。到目前为止,在我的搜索中,我发现了一些可以解决问题的 Java API(例如 iText),但在 Python 中却没有。如果有人有以下任何一项的链接,将不胜感激:

  • 我可以用来验证数字签名的 API
  • 关于如何编写自己的代码来验证数字签名的说明/一般指南

其他细节:

  • PDF 的数字证书由 GlobalSign CA for Adob​​e 颁发(如果重要)
  • 此代码最终将在 Google App Engine 上运行

python pdf google-app-engine digital-signature

5
推荐指数
1
解决办法
4054
查看次数

这个 API 签名请求方法安全吗?

我正在认证为我JSON-RPC API和我的当前工作的策略是使用通过发送请求签约POSTSSL

我想知道是否有人可以看到我没有使用以下签名方法考虑的任何漏洞。

客户端和服务器之间的所有通信都是通过POST发送的请求完成的SSLhttpAPI 服务器会直接拒绝不安全的请求。

依赖关系

var uuid = require('node-uuid');
var crypto = require('crypto');
var moment = require('moment');
var MyAPI = require('request-json').newClient('https://api.myappdomain.com');
Run Code Online (Sandbox Code Playgroud)

依赖链接:node-uuid , crypto , moment , request-json

瓦尔斯

var apiVersion = '1.0';
var publicKey = 'MY_PUBLIC_KEY_UUID';
var secretKey = 'MY_SECRET_KEY_UUID';
Run Code Online (Sandbox Code Playgroud)

请求对象

var request = {
    requestID : uuid.v4(),
    apiVersion : apiVersion,
    nonce : uuid.v4(),
    timestamp : moment.utc( new Date() ),
    params : params
}
Run Code Online (Sandbox Code Playgroud)

签名 …

api digital-signature hmac node.js

5
推荐指数
1
解决办法
1197
查看次数

从 RSA 密钥对获取私钥/公钥 base64 表示

我想在 C# 中生成 RSA 密钥对。我能够获取密钥的 xml 字符串,但我需要它们的 base64 表示。这是我的 xml 代码

RSACryptoServiceProvider rsa = new RSACryptoServiceProvider();

privateKeyXmlText = rsa.ToXmlString(true);
publicKeyXmlText = rsa.ToXmlString(false);
Run Code Online (Sandbox Code Playgroud)

但我想要的是

privateKeyStr=="MIICITAjBgoqhkiG9w0BDAEDMBUEEKaTCK5mE2MsQANxDAfaJe8CAQoEggH47qb6bFO+a2Fj...";
publicKeyStr == "MIIBKjCB4wYHKoZIzj0CATCB1wIBATAsBgcqhkjOPQEBAiEA/////wAA...";
Run Code Online (Sandbox Code Playgroud)

有任何想法吗?

c# rsa digital-signature

5
推荐指数
1
解决办法
5452
查看次数

无法使用 Inno Setup 签署(卸载)安装程序

我安装了 Inno Setup 和 Inno Script Studio,以及 Visual Studio 2013。我有一个数字证书,用密码保护,名为certificate.p12. 我还安装了 Windows 8.1 驱动程序 SDK(虽然我运行的是 Windows 7 Professional x64)。我在安装程序中包含的编译输出已经签名。

我使用名为的签名工具my_signtool和以下命令配置了 Inno Script Studio :

"C:\Program Files (x86)\Windows Kits\8.1\bin\x64\signtool.exe" sign /f "z:\full\path\to\certificate.p12" /p "password" $f
Run Code Online (Sandbox Code Playgroud)

...在我的.iss文件中,我有:

SignTool=my_signtool
Run Code Online (Sandbox Code Playgroud)

在我的计算机上使用此设置,它可以完美运行。我编译项目,Inno Setup 会自动对安装程序及其卸载程序进行签名。

但是,我有一个同事应该是完全相同的设置。他拥有 Visual Studio 2013、Inno Setup 和 Inno Script Studio、证书副本及其密码。当他尝试编译它时, Inno Setup 失败,说试图针对uninst.e32.tmp返回运行 signtool 0x1。当他运行它尝试在命令提示符下手动运行的确切命令时,它失败了,指出uninst.e32.tmp不可用,但这似乎很正常,因为我怀疑 Inno Setup 只是在错误发生后自行清理(或者是吗?)。

我试过用$q符号工具的定义替换引号无济于事。事实上,除了通向signtool.exe自身的路径之外,所涉及的路径都没有任何空间。

我们的两个输出最初都是这样的。紧接着就是他们分歧的地方:我的继续运行,他抱怨签名工具失败了0x1

Starting compile.  [Monday, January 12 …
Run Code Online (Sandbox Code Playgroud)

inno-setup digital-signature visual-studio-2013

5
推荐指数
1
解决办法
1833
查看次数

使用 Protobuf 序列化消息的一部分

我正在尝试使用 Protobuf 序列化/反序列化子消息。这样做的原因是签署。我希望能够签署我的部分信息。为了能够做到这一点,我需要以某种方式规范化它。

如果重要的话,我将 protbuf 3.0.0-alpha(使用 proto2 语言)与 Python3.4 一起使用。

示例文件:testp.proto

package my_package;

message my_mess {
  message data {
    optional uint64 x = 1;
    optional uint64 y = 2;
    optional uint64 z = 3;
  }
    optional bytes signature = 4;
}
Run Code Online (Sandbox Code Playgroud)

在这个例子中,我想对消息的数据部分进行签名。因此我只想序列化my_mess.data,签名,将签名放入my_mess.signature,然后序列化完整的消息my_mess。

编译 testp.proto:

$ protoc -I=. --python_out=. testp.proto 
[libprotobuf WARNING google/protobuf/compiler/parser.cc:471] No syntax specified for the proto file. Please use 'syntax = "proto2";' or 'syntax = "proto3";' to specify a syntax version. (Defaulted to proto2 syntax.)
Run Code Online (Sandbox Code Playgroud)

我注意到 mm.data 有方法 …

python serialization digital-signature protocol-buffers

5
推荐指数
1
解决办法
7575
查看次数

如何使用 mupdf(ios) 对 pdf 进行数字签名

我已成功将 mupdf 集成到我的项目中。现在我可以浏览pdf,添加新的注释和编辑,但我不知道如何将数字签名嵌入到pdf中。

任何人都可以建议我将数字签名嵌入到 pdf 中的步骤吗?

pdf digital-signature ios mupdf

5
推荐指数
0
解决办法
506
查看次数

“git show --show-signature”到底验证什么?

克隆远程 git 存储库并发出 后git show --show-signature,它表示签名良好。然后我更改了一些文件并测试了相同的命令,它仍然说签名良好。

上面的命令到底检查什么?验证克隆的git的正确方法是什么?开发者的意思是什么?

git authentication digital-signature

5
推荐指数
1
解决办法
6441
查看次数

PDFBox - 打开并保存签名的 pdf 会使我的签名无效

我正在尝试学习使用 Apache 的 pdfBox 来处理工作中的数字签名文档。在测试过程中,我创建了一个完全空的 pdf 文档。

然后我通过 Adob​​e reader 使用带有证书的签名功能对文档进行了签名。

我尝试使用 pdfBox 打开、保存和关闭签名文件,而不进行任何修改。但是,一旦我在 Adob​​e 中打开该文件,这些文件就不再有效。

Adobe 告诉我:“此签名中包含的格式或信息存在错误(支持信息:SigDict/Contents 非法数据)”

由于我没有修改文件的内容,直观上不应该有任何问题,签名应该仍然有效,但事实并非如此,我不知道解决方案是什么(谷歌搜索没有结果)。

我如何创建文档:

@Test
public void createEmptyPDF() throws IOException {
    String path = "path to file";
    PDDocument document = new PDDocument();
    PDPage page = new PDPage();
    document.addPage(page);
    document.save(path);
    document.close();
}
Run Code Online (Sandbox Code Playgroud)

然后我用 adobe 签名并通过以下方式传递:

 @Test
public void copySignedDocument() throws IOException {
    String path = "path to file";
    File file = new File(path);
    PDDocument document = PDDocument.load(file);
    document.save(file);
    document.close();

    //just opening and saving the …
Run Code Online (Sandbox Code Playgroud)

java pdf adobe digital-signature pdfbox

5
推荐指数
1
解决办法
6654
查看次数

如何对 PHP 源代码进行签名

我想分发一些 PHP 源代码,我需要提供一种方法来验证这些源代码没有被更改。

所以基本上我想对它们进行签名(如果可能的话使用 PHP),然后检查它们的签名(必须使用 PHP,它必须在 Linux 和 Windows 上都工作)。

我一直在挖掘,我发现的是:

如果任何人都可以验证这个过程(或指出更好的过程),那将是一个很大的帮助。

因为我试图给出我现在找到的理论解决方案,但是理论和实践之间应该是有差距的。特别是考虑到我对这个概念还很陌生,并且在安全方面保持稳固对于我的项目来说至关重要。我记得几年前使用苹果的签名过程是一件很痛苦的事,我对自己创建安全解决方案的能力没有信心。

php openssl code-signing digital-signature phar

5
推荐指数
1
解决办法
1932
查看次数