本文目录一览:
怎么把js代码怎么换成汉字
JS既然是代码,自然转不了汉字,而且也毫无意义。
如果是把汉字代码转为汉字,可以使用String.fromCharCode(字符的Ascii码),就可实现将ascii码转换成字符。
这个JS代码转成PHP该怎么写呀?
//对应js的Math.random,引用网址:
function random($min = 0, $max = 1){
return $min + mt_rand()/mt_getrandmax()*($max-$min);
}
function urlensafe ($str){
$data = base64_encode($str);
return str_replace(['+','/','='],['-','_',''],$data);
}
function encode($str){
$m=(int)(random() * 35 + 1)*7;
$a=$n=chr($m);
$tmp='';
$len=mb_strlen($str,'utf-8');//strlen($str);
for ($i = 0; $i $len; $i += 2) {
$n = ord($a[0]) ^ ord($str[$i]);
$tmp .= chr($n);
if ($i + 1 $len) {
$n = $n ^ ord($str[$i+1]);
$tmp .= chr($n);
}
}
$tmp = $a.$tmp;
return urlensafe($tmp);
}
js代码转换为java
理解他的原理就好写了。
所有参数 排除 时间戳,按照字母顺序排序,然后连接起来 和 appKey 以及 appSercet 进行md5 运算。
排序可以使用 String []keys = map.keyset().toarray() 获取后使用 Collections 进行sort。
有个类似的,可以参考一下:
public static boolean signVerify(String appSecret,MapString, String params){
MapString, String map=new HashMapString, String();
map.put("appSecret", appSecret);
for(String key:params.keySet()){
if(!key.equals("sign")){
map.put(key, params.get(key));
}
}
String sign=sign(map);
if(sign.equals(params.get("sign"))){
return true;
}
return false;
}
private static String toHexValue(byte[] messageDigest) {
if (messageDigest == null)
return "";
StringBuilder hexValue = new StringBuilder();
for (byte aMessageDigest : messageDigest) {
int val = 0xFF aMessageDigest;
if (val 16) {
hexValue.append("0");
}
hexValue.append(Integer.toHexString(val));
}
return hexValue.toString();
}
/**
*
* @param params
* @return
*/
public static String sign(MapString,String params){
ListString keys=new ArrayListString(params.keySet());
Collections.sort(keys);
String string="";
for(String s:keys){
string+=params.get(s);
}
String sign="";
try {
sign = toHexValue(encryptMD5(string.getBytes(Charset.forName("utf-8"))));
} catch (Exception e) {
e.printStackTrace();
throw new RuntimeException("md5 error");
}
return sign;
}
private static byte[] encryptMD5(byte[] data)throws Exception{
MessageDigest md5 = MessageDigest.getInstance("MD5");
md5.update(data);
return md5.digest();
}
public static void main(String[] args) {
String appKey="key";
String appSecret="secret";
MapString, String params=new HashMapString, String();
params.put("appKey", appKey);
params.put("appSecret", appSecret);
params.put("date", new Date().getTime()+"");
String sign=sign(params);
params.put("sign", sign);
System.out.println(signVerify(appSecret, params));
}