資源簡介
java rsa 公鑰分段加密代碼轉php代碼,php采用OPENSSL_NO_PADDING 模式填充ascii0加解密

代碼片段和文件信息
package?com.asiainfo.openplatform.common.util;
import?java.io.ByteArrayOutputStream;
import?java.security.Key;
import?java.security.KeyFactory;
import?java.security.KeyPair;
import?java.security.KeyPairGenerator;
import?java.security.PrivateKey;
import?java.security.PublicKey;
import?java.security.Signature;
import?java.security.interfaces.RSAPrivateKey;
import?java.security.interfaces.RSAPublicKey;
import?java.security.spec.PKCS8EncodedKeySpec;
import?java.security.spec.X509EncodedKeySpec;
import?java.util.HashMap;
import?java.util.Map;
import?javax.crypto.Cipher;
import?org.bouncycastle.jce.provider.BouncyCastleProvider;
/**
?*?RSA加密工具類
?*?
?*?Copyright:?Copyright?(c)?2011?Asiainfo
?*?
?*?@ClassName:?TransferSoapReqHelper.java
?*?@Description:?該類的功能描述
?*
?*?@version:?v1.0.0
?*?@author:?zhangmeng3
?*?@date:?2014-9-17?上午10:38:45
?*
?*/
public?class?RSAUtils?{??
????/**?
?????*?加密算法RSA?
?????*/??
????public?static?final?String?KEY_ALGORITHM?=?“RSA“;??
??????
????/**?
?????*?簽名算法?
?????*/??
????public?static?final?String?SIGNATURE_ALGORITHM?=?“MD5withRSA“;??
??
????/**?
?????*?獲取公鑰的key?
?????*/??
????private?static?final?String?PUBLIC_KEY?=?“RSAPublicKey“;??
??????
????/**?
?????*?獲取私鑰的key?
?????*/??
????private?static?final?String?PRIVATE_KEY?=?“RSAPrivateKey“;??
??????
????/**
?????*?RSA最大加密明文大小
?????*/??
????private?static?final?int?MAX_ENCRYPT_BLOCK?=?64;??
????
????/**?
?????*?RSA最大解密密文大小?
?????*/??
????private?static?final?int?MAX_DECRYPT_BLOCK?=?75;
????
????/**
?????*?RSA密鑰長度
?????*/
????private?static?final?int?INITIAL_KEY_SIZE?=?600;
??
????/**
?????*??
?????*?生成密鑰對(公鑰和私鑰)?
?????*?
?
?????*??
?????*?@return?
?????*?@throws?Exception?
?????*/??
????public?static?Mapject>?genKeyPair()?throws?Exception?{??
????????KeyPairGenerator?keyPairGen?=?KeyPairGenerator.getInstance(KEY_ALGORITHM?new?BouncyCastleProvider());
????????keyPairGen.initialize(INITIAL_KEY_SIZE);
????????KeyPair?keyPair?=?keyPairGen.generateKeyPair();??
????????RSAPublicKey?publicKey?=?(RSAPublicKey)?keyPair.getPublic();??
????????RSAPrivateKey?privateKey?=?(RSAPrivateKey)?keyPair.getPrivate();??
????????Mapject>?keyMap?=?new?HashMapject>(2);
????????keyMap.put(PUBLIC_KEY?publicKey);??
????????keyMap.put(PRIVATE_KEY?privateKey);??
????????return?keyMap;
????}
??????
????/**
?????*??
?????*?用私鑰對信息生成數字簽名?
?????*?
?
?????*??
?????*?@param?data?已加密數據?
?????*?@param?privateKey?私鑰(base64編碼)?
?????*??
?????*?@return?
?????*?@throws?Exception?
?????*/??
????public?static?String?sign(byte[]?data?String?privateKey)?throws?Exception?{??
????????byte[]?keyBytes?=?base64Utils.decode(privateKey);??
????????PKCS8EncodedKeySpec?pkcs8KeySpec?=?new?PKCS8EncodedKeySpec(keyBytes);??
????????KeyFactory?keyFactory?=?KeyFactory.getInstance(KEY_ALGORITHM);??
????????PrivateKey?privateK?=?keyFactory.generatePrivate(pkcs8KeySpec);??
????????S
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件??????11790??2020-04-11?17:17??RSAUtils.java
?????文件???????1343??2020-04-11?17:27??rsa.php
-----------?---------??----------?-----??----
????????????????13133????????????????????2
- 上一篇:JAVA實習報告 java
- 下一篇:基于CS模式的聊天室大二java課設
評論
共有 條評論