MCPcopy Create free account
hub / github.com/FongMi/CatVodSpider / Crypto

Class Crypto

app/src/main/java/com/github/catvod/utils/Crypto.java:19–91  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

17import javax.crypto.spec.SecretKeySpec;
18
19public class Crypto {
20
21 public static String md5(String src) {
22 return md5(src, "UTF-8");
23 }
24
25 public static String md5(String src, String charset) {
26 try {
27 MessageDigest md = MessageDigest.getInstance("MD5");
28 byte[] messageDigest = md.digest(src.getBytes(charset));
29 BigInteger no = new BigInteger(1, messageDigest);
30 StringBuilder sb = new StringBuilder(no.toString(16));
31 while (sb.length() < 32) sb.insert(0, "0");
32 return sb.toString().toLowerCase();
33 } catch (Exception e) {
34 return "";
35 }
36 }
37
38 public static String CBC(String src, String KEY, String IV) {
39 try {
40 src = src.replace("\\", "");
41 Cipher cipher = Cipher.getInstance("AES/CBC/PKCS5Padding");
42 SecretKeySpec keySpec = new SecretKeySpec(KEY.getBytes(), "AES");
43 AlgorithmParameterSpec paramSpec = new IvParameterSpec(IV.getBytes());
44 cipher.init(Cipher.DECRYPT_MODE, keySpec, paramSpec);
45 byte[] decrypted = cipher.doFinal(Base64.decode(src, Base64.DEFAULT));
46 return new String(decrypted);
47 } catch (Exception ignored) {
48 return "";
49 }
50 }
51
52 public static String aesEncrypt(String data, String key, String iv) throws Exception {
53 SecretKeySpec secretKey = new SecretKeySpec(key.getBytes(StandardCharsets.UTF_8), "AES");
54 IvParameterSpec ivSpec = new IvParameterSpec(iv.getBytes(StandardCharsets.UTF_8));
55 Cipher cipher = Cipher.getInstance("AES/CBC/PKCS5Padding");
56 cipher.init(Cipher.ENCRYPT_MODE, secretKey, ivSpec);
57 byte[] encrypted = cipher.doFinal(data.getBytes(StandardCharsets.UTF_8));
58 return Base64.encodeToString(encrypted, Base64.NO_PADDING);
59 }
60
61 public static String rsaEncrypt(String data, String publicKeyPem) throws Exception {
62 String publicKeyPEM = publicKeyPem.replace("-----BEGIN PUBLIC KEY-----", "").replace("-----END PUBLIC KEY-----", "").replaceAll("\\s+", "");
63 byte[] decoded = Base64.decode(publicKeyPEM, Base64.DEFAULT);
64 X509EncodedKeySpec spec = new X509EncodedKeySpec(decoded);
65 KeyFactory keyFactory = KeyFactory.getInstance("RSA");
66 PublicKey publicKey = keyFactory.generatePublic(spec);
67 Cipher cipher = Cipher.getInstance("RSA/ECB/PKCS1Padding");
68 cipher.init(Cipher.ENCRYPT_MODE, publicKey);
69 byte[] encrypted = cipher.doFinal(data.getBytes(StandardCharsets.UTF_8));
70 return Base64.encodeToString(encrypted, Base64.DEFAULT);
71 }
72
73 public static String rsaDecrypt(String encryptedKey, String privateKeyPem) throws Exception {
74 String privateKeyPEM = privateKeyPem.replace("-----BEGIN PRIVATE KEY-----", "").replace("-----END PRIVATE KEY-----", "").replaceAll("\\s", "");
75 byte[] privateKeyBytes = Base64.decode(privateKeyPEM, Base64.DEFAULT);
76 PKCS8EncodedKeySpec keySpec = new PKCS8EncodedKeySpec(privateKeyBytes);

Callers

nothing calls this directly

Calls

no outgoing calls

Tested by

no test coverage detected