- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我的应用程序正在使用 java 安全 API 来签署文件并验证它。在签名时,我使用 PFX 文件和密码作为输入,签名后我使用字节生成签名文件。在验证过程中,我使用签名文件、证书文件和签名文件作为输入。请在下面找到我在验证中使用的代码:
// KeyFilePath= path of certificate file
// fileToVerify = path of signed file
// signatureFilePath = path of signature file
InputStream inputStream = new FileInputStream(KeyFilePath);
CertificateFactory certificateFactory = CertificateFactory.getInstance("X.509");
X509Certificate x509Certificate = (X509Certificate) certificateFactory.generateCertificate(inputStream);
// input the signature bytes
String sigFile = signatureFilePath;
FileInputStream sigFileInputStream = new FileInputStream(sigFile);
byte[] sigToVerify = new byte[sigFileInputStream.available()];
sigFileInputStream.read(sigToVerify);
sigFileInputStream.close();
PublicKey pubKey = x509Certificate.getPublicKey();
Signature signature = Signature.getInstance(signAlgorithm);
signature.initVerify(pubKey);
// Update and verify the data
thử {
FileInputStream dataFileInputStream = new FileInputStream(fileToVerify);
BufferedInputStream bufferedInputStream = new BufferedInputStream(dataFileInputStream);
byte[] buffer = new byte[IVerifyDigitalSignature.BYTE_SIZE];
int bufferedInputStreamLength;
while (bufferedInputStream.available() != IVerifyDigitalSignature.ZERO_LENGTH) {
bufferedInputStreamLength = bufferedInputStream.read(buffer);
signature.update(buffer, IVerifyDigitalSignature.ZERO_LENGTH, bufferedInputStreamLength);
}
bufferedInputStream.close();
// Verify the Signature
x509Certificate.verify(pubKey);
verifyDigitalSignature = signature.verify(sigToVerify);
请帮我解决该问题,因为它尚未关闭。
1 Câu trả lời
如果您想自己执行此操作,是的,您必须迭代链中的证书从信任 anchor 到您所需的证书,无论它有多长(对于不同的 CA、类别和不同的时间,它可能会有所不同)。使用“父”(下一个更高级别)证书中的公钥验证每个“子”(较低级别)证书上的签名只是一个其中相当小的一部分;还需要许多其他步骤。通常,xuất hiện正确的证书就可能是一个问题;如果您已经拥有正确的链条,那么您就拥有了领先优势。但你确定你拥有“正确的”链条吗?通常,给定的证书有多个可能的链,有时其中一些是有效的,但另一些已经过期或变得无法验证。Verisign 特别发布了我相信所有最近的证书都在其 G5 根下,但提供了替代路径对于不是最新的,有时甚至无法更新的依赖者,返回(有效)G1。
大多数情况下的算法在“PKIX”RFC5280中定义。 ,除了 OCSP RFC6960代替 CRL 进行撤销正变得越来越普遍。您可能会忽略跨层次结构和名称约束,据我所知实际上并没有使用它们由 Verisign 等公共(public) CA 提供,以及 CA 确实使用但用户/依赖者不关心的策略内容。 https://security.stackexchange.com/questions/37409/certificate-chain-checking有一个很好但不完整的介绍。
但是你可能会更好使用Java的(实际上是JCE的)CertPathValidator for "PKIX" - 如果需要CertPathBuilder -我已经向您介绍过。这已经由专家编写和测试。只是Gọi它还是有点复杂,但远没有重写它所做的所有事情那么复杂。
关于java - 我的代码可以验证自签名证书,但在使用 VeriSign 颁发的证书时失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26607365/
Tôi cố gắng hiểu mã [c code -> assembly] void node::Check( data & _data1, vector& _data2) { -> push ebp -> mov ebp,esp ->
Tôi cần chạy mã từ một tệp văn bản trong bối cảnh của biểu mẫu hiện tại (mã). Một trong những yêu cầu là phải có mã tạo ra một điều khiển mới và thêm nó vào biểu mẫu hiện tại. Ví dụ, trong Form1.cs: sử dụng System.Windows.Forms; ..
Tôi có mã C++ này và đã chuyển đổi nó thành mã C# (.net Framework 4). Có ai có thể cho tôi một số mẹo về phương thức malloc, free và sprintf không? int monate = ee; d
Tôi có vấn đề với mã máy chủ web của tôi #include #include #include #include #include #include #include #include int
Với mã html sau, mã CSS nào sẽ in nghiêng phần tử thứ ba trong danh sách (tức là từ "beautiful")? Tất nhiên, tôi có thể cung cấp cho phần tử này một id hoặc một lớp, nhưng mã html phải giữ nguyên. Cảm ơn
đóng cửa. Câu hỏi này không đáp ứng được hướng dẫn của Stack Overflow. Hiện tại câu hỏi này không chấp nhận câu trả lời. Chúng tôi không chấp nhận những câu hỏi tìm kiếm lời khuyên về sách, công cụ, thư viện phần mềm, v.v. Bạn có thể chỉnh sửa câu hỏi để có thể trả lời bằng các sự kiện và trích dẫn. Đã đóng cửa cách đây 7 năm.
Tôi đang cố gắng tạo một macro để tránh lặp lại mã và bình luận. Tôi đã thử cách này: #define GrowOnPage(any Page, any Component) Component.Width := Page.Surfa
Tôi đang cố gắng "dịch" mã C++ cũ của mình sang C# như tiêu đề bài viết gợi ý. Vấn đề là tôi mới học C# và không phải mọi thứ đều giống như C++. Trong C++, các giải pháp này hoạt động tốt, nhưng trong C# thì không. TÔI
Khi hoạt động trên Windows 10, trình định dạng ngôn ngữ R dường như không hoạt động trong Visual Studio Code. Tôi đã thử hỗ trợ R cho Visual Studio Code và RT
Tôi đang làm một số báo cáo (đếm) và tôi phải lấy số lượng các tham số khác nhau. Rất đơn giản nhưng nhàm chán. Ví dụ truy vấn với một tham số: qCountsEmployee = ( "select count(*) from %s where
Vài ngày gần đây tôi đã cố gắng gỡ lỗi mạng từ d00m. Tôi sắp hết ý tưởng/gợi ý rồi và tôi hy vọng những người dùng SO khác có kinh nghiệm quý báu có thể giúp ích cho tôi. Tôi ước mình có thể cung cấp mọi thông tin có liên quan, nhưng cá nhân tôi không thể kiểm soát được môi trường máy chủ. Mọi thứ bắt đầu khi người dùng chú ý đến ứng dụng của chúng tôi
Tôi có một tệp app.js chứa mã chế độ amd dojo sau: require(["dojo/dom", ..], function(dom){ dom.byId('someId').i
Tôi hơi bối rối về tùy chọn "code=sm_X" trong câu lệnh "-gencode". Ví dụ: tùy chọn biên dịch NVCC -gencode arch=compute_13,code=sm_13 có tác dụng gì để nhúng thư viện? chỉ một
Tôi đang sử dụng khung X-editable cho biểu mẫu của mình. Nhưng tôi có một số câu hỏi. $(document).ready(function() { $('.access').editable({
Tôi đã học Flask/Python thông qua hướng dẫn này http://blog.miguelgrinberg.com/post/the-flask-mega-tutorial-part-i-hello-wo
Tôi muốn sử dụng Vim và EMACS cho CNC, G-code và M-code. Có cú pháp hoặc chế độ nào trong Vim hoặc EMACS để xử lý loại mã này không? Câu trả lời hay nhất Một số tìm kiếm nhanh chóng dẫn tôi đến vim này và điều này
đóng cửa. Câu hỏi này không đáp ứng được hướng dẫn của Stack Overflow. Hiện tại câu hỏi này không chấp nhận câu trả lời. Bạn có muốn cải thiện câu hỏi này không? Cập nhật câu hỏi để nó phù hợp với chủ đề của Stack Overflow. Đã đóng cửa cách đây 7 năm. Cải thiện điều này
Câu hỏi này đã có câu trả lời tại đây: Bật tính năng đánh dấu markdown trong Vim (5 câu trả lời) Đã đóng 6 năm trước. Khi tôi chỉnh sửa tệp READM có chứa mã Markdown trong Vim
Tôi đang phát triển một ứng dụng video bằng Swift3 iOS. Về cơ bản, tôi phải hợp nhất các nội dung video và âm thanh có hiệu ứng mờ dần thành một và lưu vào thư viện ảnh trên iPhone. Để làm điều này tôi sử dụng phương pháp sau: private func d
đường ống { đại lý bất kỳ giai đoạn nào { giai đoạn ('Xây dựng') { các bước { e
Tôi là một lập trình viên xuất sắc, rất giỏi!