类 CommonUtil
- java.lang.Object
-
- com.ajaxjs.util.cryptography.CommonUtil
-
public class CommonUtil extends Object
-
-
构造器概要
构造器 构造器 说明 CommonUtil()
-
方法概要
所有方法 静态方法 具体方法 修饰符和类型 方法 说明 static Map<BigInteger,X509Certificate>
deserializeToCerts(String apiV3Key, Map<String,Object> pMap)
反序列化证书并解密static String
doCipher(String algorithmName, int mode, byte[] keyData, AlgorithmParameterSpec spec, String cipherText, byte[] associatedData)
static byte[]
doCipher(String algorithmName, int mode, Key key, byte[] data)
进行加密或解密,三步走static byte[]
doCipher(String algorithmName, int mode, Key key, byte[] data, AlgorithmParameterSpec spec)
进行加密或解密,三步走static PrivateKey
loadPrivateKey(InputStream inputStream)
从输入流中加载私钥 该方法首先将输入流中的字节读取到 ByteArrayOutputStream 中,然后将其转换为字符串形式的私钥, 最后调用另一方法loadPrivateKey(String)来解析并返回私钥对象static PrivateKey
loadPrivateKey(String privateKey)
转换为 Java 里面的 PrivateKey 对象static PrivateKey
loadPrivateKeyByPath(String privateKeyPath)
从 classpath 上指定私钥文件的路径static int
XOR(int res, String key)
使用异或操作对结果进行加密或解密。static String
XOR_decode(String res, String key)
使用异或进行解密static String
XOR_encode(String res, String key)
使用异或操作符对字符串进行简单加密。
-
-
-
方法详细资料
-
doCipher
public static byte[] doCipher(String algorithmName, int mode, Key key, byte[] data)
进行加密或解密,三步走- 参数:
algorithmName
- 选择的算法mode
- 是解密模式还是加密模式?key
- 密钥data
- 输入的内容- 返回:
- 结果
-
doCipher
public static byte[] doCipher(String algorithmName, int mode, Key key, byte[] data, AlgorithmParameterSpec spec)
进行加密或解密,三步走- 参数:
algorithmName
- 选择的算法mode
- 是解密模式还是加密模式?key
- 密钥data
- 输入的内容spec
- 参数,可选的- 返回:
- 结果
-
doCipher
public static String doCipher(String algorithmName, int mode, byte[] keyData, AlgorithmParameterSpec spec, String cipherText, byte[] associatedData)
-
XOR_encode
public static String XOR_encode(String res, String key)
使用异或操作符对字符串进行简单加密。 该方法通过将字符串的每个字节与一个固定密钥的哈希值进行异或操作,以达到加密的目的。加密后的字节数组再通过工具方法转换为十六进制字符串返回。 此方法适用于对数据进行简单的安全性保护,但并非安全的加密手段,适用于对安全性要求不高的场景。- 参数:
res
- 需要加密的字符串。key
- 加密使用的密钥。注意,该密钥将被转换为哈希值后用于加密操作。- 返回:
- 返回加密后的十六进制字符串。
-
XOR_decode
public static String XOR_decode(String res, String key)
使用异或进行解密- 参数:
res
- 需要解密的密文key
- 秘钥- 返回:
- 结果
-
XOR
public static int XOR(int res, String key)
使用异或操作对结果进行加密或解密。 异或操作的特点是,如果对相同的两个值进行异或操作,结果是 0;而且异或操作是可逆的,即 a ^ b ^ b = a。 这里使用字符串的哈希值作为密钥,因为字符串的哈希值在大多数情况下是不同的,这样可以增加解密的难度。 但是需要注意,由于哈希冲突的可能性,不同字符串的哈希值可能会相同,这可能会导致解密错误。- 参数:
res
- 需要加密或解密的整数结果。key
- 用于加密或解密的字符串密钥。- 返回:
- 经过异或操作后的加密或解密结果。
-
loadPrivateKeyByPath
public static PrivateKey loadPrivateKeyByPath(String privateKeyPath)
从 classpath 上指定私钥文件的路径- 参数:
privateKeyPath
- 私钥文件的路径- 返回:
- 私钥文件 PrivateKey
-
loadPrivateKey
public static PrivateKey loadPrivateKey(String privateKey)
转换为 Java 里面的 PrivateKey 对象- 参数:
privateKey
- 私钥内容- 返回:
- 私钥对象
-
loadPrivateKey
public static PrivateKey loadPrivateKey(InputStream inputStream)
从输入流中加载私钥 该方法首先将输入流中的字节读取到 ByteArrayOutputStream 中,然后将其转换为字符串形式的私钥, 最后调用另一方法loadPrivateKey(String)来解析并返回私钥对象- 参数:
inputStream
- 包含私钥信息的输入流- 返回:
- 解析后的PrivateKey对象
- 抛出:
IllegalArgumentException
- 如果输入流中的数据无法被正确读取或解析为私钥,则抛出此异常
-
deserializeToCerts
public static Map<BigInteger,X509Certificate> deserializeToCerts(String apiV3Key, Map<String,Object> pMap)
反序列化证书并解密- 参数:
apiV3Key
- APIv3 密钥pMap
- 下载证书的请求返回体- 返回:
- 证书 list
-
-