SHA256withRSA Java 算法
时间: 2023-12-01 16:55:42 浏览: 95
Java RSA算法
SHA256withRSA 是一种非对称加密算法,它使用 SHA256 哈希函数和 RSA 非对称加密算法结合起来进行数字签名。下面是一个 Java 示例:
```java
import java.security.KeyPair;
import java.security.KeyPairGenerator;
import java.security.PrivateKey;
import java.security.PublicKey;
import java.security.Signature;
public class SHA256withRSAExample {
public static void main(String[] args) throws Exception {
// 生成公钥和私钥
KeyPairGenerator keyPairGenerator = KeyPairGenerator.getInstance("RSA");
keyPairGenerator.initialize(2048);
KeyPair keyPair = keyPairGenerator.generateKeyPair();
PublicKey publicKey = keyPair.getPublic();
PrivateKey privateKey = keyPair.getPrivate();
// 待签名的数据
byte[] data = "Hello, world!".getBytes();
// 用私钥对数据进行签名
Signature signature = Signature.getInstance("SHA256withRSA");
signature.initSign(privateKey);
signature.update(data);
byte[] signatureBytes = signature.sign();
// 用公钥对签名进行验证
signature.initVerify(publicKey);
signature.update(data);
boolean verified = signature.verify(signatureBytes);
System.out.println("Signature verified: " + verified);
}
}
```
在这个示例中,我们先生成了一个公钥和私钥对,然后使用私钥对数据进行签名,再使用公钥对签名进行验证。注意,签名和验证时都需要使用相同的算法(这里都是 SHA256withRSA)。
阅读全文