网易云音乐参数加密算法
通常我们再写自己的音乐播放器的时候,都会在网上找一些比较主流的音乐播放器api,例如QQ音乐、网易云音乐、百度音乐等等,而在使用网易云音乐api的时候,由于他的参数时需要加密无法直接使用的,所以我们必须要知道他是怎么进行加密的,这篇文章就是对参数进行加密的java代码。*
import javax.crypto.Cipher;
import javax.crypto.spec.IvParameterSpec;
import javax.crypto.spec.SecretKeySpec;
import java.math.BigInteger;
import java.util.Arrays;
import java.util.Collections;
import java.util.HashMap;
import java.util.List;
import org.apache.commons.codec.binary.Base64;
import org.apache.commons.lang.StringUtils;
/**
* 网易云音乐参数加密算法
*/
public class JavaEncrypt {
private static final String modulus = "00e0b509f6259df8642dbc35662901477df22677ec152b5ff68ace615bb7b725152b3ab17a876aea8a5aa76d2e417629ec4ee341f56135fccf695280104e0312ecbda92557c93870114af6c9d05c4f7f0c3685b7a46bee255932575cce10b424d813cfe4875d3e82047b97ddef52741d546b8e289dc6935b3ece0462db0a22b8e7";
private static final String nonce = "0CoJUm6Qyw8W8jud";
private static final String pubKey = "010001";
/**
* 创建秘钥
* @param size 位数
* @return
*/
public static String createSecreKey(int size){
String keys = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789";
String key = "";
for(int i = 0;i<size;i++){
int pos = (int)Math.floor(Math.random()*keys.length