Laravel  
laravel
文档
数据库
架构
入门
php技术
    
Laravelphp
laravel / php / java / vue / mysql / linux / python / javascript / html / css / c++ / c#

java rsa

作者:寒江映月   发布日期:2025-08-23   浏览:47

import java.security.KeyPair;
import java.security.KeyPairGenerator;
import java.security.PrivateKey;
import java.security.PublicKey;
import java.security.Signature;

public class RSADemo {

    public static void main(String[] args) throws Exception {
        // 生成 RSA 密钥对
        KeyPairGenerator keyGen = KeyPairGenerator.getInstance("RSA");
        keyGen.initialize(2048); // 指定密钥长度
        KeyPair keyPair = keyGen.generateKeyPair();

        PublicKey publicKey = keyPair.getPublic();
        PrivateKey privateKey = keyPair.getPrivate();

        // 要签名的数据
        String data = "Hello, RSA!";
        byte[] dataBytes = data.getBytes();

        // 使用私钥进行签名
        Signature signature = Signature.getInstance("SHA256withRSA");
        signature.initSign(privateKey);
        signature.update(dataBytes);
        byte[] signBytes = signature.sign();

        // 使用公钥验证签名
        signature.initVerify(publicKey);
        signature.update(dataBytes);
        boolean isVerified = signature.verify(signBytes);

        System.out.println("Signature verified: " + isVerified);
    }
}

解释说明:

  1. 生成 RSA 密钥对

    • 使用 KeyPairGenerator 类生成 RSA 密钥对。通过 initialize(2048) 方法指定密钥长度为 2048 位。
    • generateKeyPair() 方法返回一个包含公钥和私钥的 KeyPair 对象。
  2. 签名数据

    • 使用 Signature 类进行签名操作。getInstance("SHA256withRSA") 表示使用 SHA-256 哈希算法结合 RSA 算法进行签名。
    • initSign(privateKey) 初始化签名对象,使用私钥进行签名。
    • update(dataBytes) 更新要签名的数据。
    • sign() 方法生成签名并返回字节数组。
  3. 验证签名

    • 再次使用 Signature 类进行验证操作。initVerify(publicKey) 初始化签名对象,使用公钥进行验证。
    • update(dataBytes) 更新要验证的数据。
    • verify(signBytes) 验证签名是否有效,返回布尔值。

这段代码展示了如何使用 Java 中的 RSA 算法进行数字签名和验证。

上一篇:快速排序java

下一篇:java iterator

大家都在看

java连接数据库的代码

java djl

ubuntu 卸载java

java读取excel中的图片

java新建

java sort用法

java collections.sort

java file类的方法

java发送qq邮件

java 判断

Laravel PHP 深圳智简公司。版权所有©2023-2043 LaravelPHP 粤ICP备2021048745号-3

Laravel 中文站