2017-01-08 23 views
5

Tôi muốn đăng ký một file tôi tạo ra sử dụng một cặp khóa RSA Tôi tạo ra sử dụng công cụ chủ chốt và các lệnh sau:JAVA Chữ ký Object - Không cung cấp dịch vụ cài đặt hỗ trợ phím này: sun.security.rsa.RSAPrivateCrtKeyImpl

keytool -genkeypair -alias key -keyalg RSA -keysize 2048 -sigalg SHA256withRSA -validity 365 -keystore keystore.jks

tôi muốn khởi tạo đối tượng Chữ ký của tôi vì vậy tôi cố gắng này:

PrivateKey privateKey = (PrivateKey) keyStore.getKey(PRIVATE_KEY_ALIAS,privateKeyPassword); 
Signature signature = Signature.getInstance(SIGNATURE_ALGORITHM); 
signature.initSign(privateKey); 

Nhưng tôi có ngoại lệ này:
No installed provider supports this key: sun.security.rsa.RSAPrivateCrtKeyImpl

Đánh giá cao sự trợ giúp nào!

+0

Giá trị 'SIGNATURE_ALGORITHM' là gì? –

+0

Xin lỗi tôi đã quên mất chuỗi 'chuỗi tĩnh cuối cùng riêng tư SIGNATURE_ALGORITHM =" SHA1withDSA ";' –

Trả lời

6

Bạn không thể sử dụng SHA1withDSA bằng khóa RSA. Thay đổi thuật toán chữ ký thành SHA1withRSA hoặc tạo bản sao khóa DSA

Các vấn đề liên quan