fuint-framework/fuint-util/src/main/java/com/fuint/util/RSAUtil.java
(开头部分) 12KB这里只显示每个文件的开头 60 行。登录后可以解锁完整代码。
package com.fuint.util;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import javax.crypto.BadPaddingException;
import javax.crypto.Cipher;
import javax.crypto.IllegalBlockSizeException;
import javax.crypto.NoSuchPaddingException;
import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.security.*;
import java.security.interfaces.RSAPrivateKey;
import java.security.interfaces.RSAPublicKey;
import java.security.spec.InvalidKeySpecException;
import java.security.spec.PKCS8EncodedKeySpec;
import java.security.spec.X509EncodedKeySpec;
import java.util.HashMap;
import java.util.Map;
//import org.apache.commons.io.FileUtils;
/**
* 数字签名工具类
* 非对称加/解密(支持大数据)
*
* @author fsq
*/
public class RSAUtil {
private static final Logger logger = LoggerFactory.getLogger(RSAUtil.class);
//默认字符集
private static final String CHARSET = "UTF-8";
//RSA密钥长度
private static final int KEY_LENGTH = 1024;
//RSA最大加密明文大小
private static final int MAX_ENCRYPT_BLOCK = 117;
// RSA最大解密密文大小
private static final int MAX_DECRYPT_BLOCK = 128;
//密钥生成算法
private static String KEY_RSA = "RSA";
//签名/验签算法
private static String KEY_MD5WITHRSA = "MD5withRSA";
/**
* 签名方法
*
* @param data 待签名数据
* @param privateKey 私钥串
* @return String 签名后数据
*/
public static String signData(String data, String privateKey) {
try {
// byte[] signByte = signData(data.getBytes(CHARSET), privateKey);
// return new String(signByte, CHARSET);
PrivateKey prikey = getPrivateKey(privateKey);
Signature signet = Signature.getInstance("SHA1withRSA");
signet.initSign(prikey);
signet.update(data.getBytes("UTF-8"));
return HexStringByte.byteToHex(signet.sign());
} catch (Exception e) {
后面还有 346 行代码,购买后查看完整代码
24 小时内免费解锁 3 个项目,之后 1 算力/个。 规则说明
AI 解读 AI
登录后可用,每次 10 算力,解读结果公开显示在下面。
还没有人解读过这个文件。