Java DSA 生成签名
时间: 2023-12-22 09:04:11 浏览: 25
在Java中生成签名需要使用Java Cryptography Extension(JCE)API。下面是一个简单的示例代码:
```java
import java.security.KeyPair;
import java.security.KeyPairGenerator;
import java.security.PrivateKey;
import java.security.PublicKey;
import java.security.Signature;
public class SignatureExample {
public static void main(String[] args) throws Exception {
// 创建KeyPairGenerator对象和RSA算法
KeyPairGenerator keyPairGenerator = KeyPairGenerator.getInstance("RSA");
keyPairGenerator.initialize(2048);
// 生成密钥对
KeyPair keyPair = keyPairGenerator.generateKeyPair();
PrivateKey privateKey = keyPair.getPrivate();
PublicKey publicKey = keyPair.getPublic();
// 获得Signature对象
Signature signature = Signature.getInstance("SHA256withRSA");
signature.initSign(privateKey);
// 需要签名的数据
byte[] data = "hello world".getBytes();
// 对数据进行签名
signature.update(data);
byte[] signatureBytes = signature.sign();
// 验证签名
signature.initVerify(publicKey);
signature.update(data);
boolean verified = signature.verify(signatureBytes);
System.out.println("Signature verified: " + verified);
}
}
```
以上代码生成一个RSA密钥对,使用SHA256withRSA算法对数据进行签名,并验证签名是否正确。