55 lines
1.5 KiB
Java
55 lines
1.5 KiB
Java
package com.senmesh.sdk.ssb.util;
|
|
|
|
import org.apache.commons.codec.binary.Base64;
|
|
|
|
import javax.crypto.Cipher;
|
|
import java.security.KeyFactory;
|
|
import java.security.MessageDigest;
|
|
import java.security.NoSuchAlgorithmException;
|
|
import java.security.PublicKey;
|
|
import java.security.spec.X509EncodedKeySpec;
|
|
|
|
|
|
public class SsbRsaUtils {
|
|
|
|
public static String encryptByPublicKey(String publicKeyText, String text) throws Exception {
|
|
X509EncodedKeySpec x509EncodedKeySpec2 =
|
|
new X509EncodedKeySpec(Base64.decodeBase64(publicKeyText));
|
|
KeyFactory keyFactory = KeyFactory.getInstance("RSA");
|
|
PublicKey publicKey = keyFactory.generatePublic(x509EncodedKeySpec2);
|
|
Cipher cipher = Cipher.getInstance("RSA");
|
|
cipher.init(Cipher.ENCRYPT_MODE, publicKey);
|
|
byte[] result = cipher.doFinal(text.getBytes());
|
|
return Base64.encodeBase64String(result);
|
|
}
|
|
|
|
public static String encryptMd5(String plainText) {
|
|
String re_md5 = new String();
|
|
try {
|
|
MessageDigest md = MessageDigest.getInstance("MD5");
|
|
md.update(plainText.getBytes());
|
|
byte b[] = md.digest();
|
|
|
|
int i;
|
|
|
|
StringBuffer buf = new StringBuffer("");
|
|
for (int offset = 0; offset < b.length; offset++) {
|
|
i = b[offset];
|
|
if (i < 0)
|
|
i += 256;
|
|
if (i < 16)
|
|
buf.append("0");
|
|
buf.append(Integer.toHexString(i));
|
|
}
|
|
|
|
re_md5 = buf.toString();
|
|
|
|
} catch (NoSuchAlgorithmException e) {
|
|
e.printStackTrace();
|
|
}
|
|
return re_md5;
|
|
}
|
|
|
|
|
|
}
|