php示例怎么转java?/**
* 生成签名
* @param string timestamp 时间戳
* @param string appSecret 合作商开发者密钥
* @param string nonce 随机字符串
* @return string
*/
public String makeSignature (String timestamp,String appSecret,String nonce) {
String[] tmpArr = {timestamp, nonce, appSecret};
// 按值升序排序
Arrays.sort(tmpArr)
// 数组拼接为字符串
// 调用md5方法
return signature;
}
其他的都是方法调用, 根据需要编写就行
请把一小段PHP代码换成一段的JAVA代码~非常感谢你这不好单独翻调用到太多其它方法了 , 打注释的地方根据php函数的功能 改成java的就行了
private static boolean check_password_db(String nickname,String password){
String pwd=mysql_query("select password from users where username=" nickname ""); //mysql_query
String sha_info;
if(mysql_num_rows(pwd)==1){//mysql_num_rows(pwd)php的函数
String password_info=mysql_fetch_array(pwd); //mysql_fetch_array(pwd);
sha_info=explode("$",password_info[0]); //explode("$",password_info[0]);
}else{
return false;
}
if(sha_info[1]=="SHA"){
String salf=sha_info[2];
String sha256_password=hash("sha256",password); //hash();
sha256_password =sha_info[2];
if(strcasecmp(trim(sha_info[3]),hash("sha256",sha256_password))==0){ //strcasecmp
return true;
}else{
return false;
}
}
}
PHP代码变成java代码php代码没几行,信息量很大,翻译成java代码行数量比较大 。仅提供思路和php代码解释 。
---------------
?php
$appid = "123"; //数组里面的值,id 。
$apikey = "456"; //数组里面的值,为加密密钥 。
$secretKey ="789"; //数组里面的值,安全密钥 。
$timestamp = time(); ////数组里面的值 , 获得当前时间 。
//UNIX 时间戳(timestamp)是 PHP 中关于时间日期一个很重要的概念,它表示从 1970年1月1日 00:00:00 到当前时间的秒数之和 。
//echo输出$timestamp变量值,例如输出了1389379960
echo $timestamp;
//定义数组 。以键值对方式存储 。
//'appid' 'apikey' 'secretkey' 'timestamp'是key,键 。
//$appid $apikey, $secretKey $timestamp是value,值 。
$params = array('appid'=$appid, 'apikey'=$apikey, 'secretkey'=$secretKey, 'timestamp'=$timestamp);
//对数组键值进行升序排序 。排序结果为apikey appid secretkey timestamp
ksort($params);
//拼接数组中的参数 , 并且用encoded编码 。
//http_build_query -- 生成 url-encoded 之后的请求字符串 。当数组没有写下标时 , 就会用第二个参数结合当前默认下标当前缀 。
//$param_uri变量值 , 结果为apikey=456appid=123secretkey=789×tamp=1389379498
$param_uri = http_build_query($params,'','');
echo $param_uri;//echo输出结果为apikey=456appid=123secretkey=789×tamp=1389379498
//先使用调用hash_hmac方法加密,HMAC-SHA1算法 。
//$secretKey为安全密钥,$param_uri为要加密的明文 。'sha1'是HMAC-SHA1算法 。
//再调用base64_encode方法加密,base64_encode 使用 MIME base64 对数据进行编码 。
$sig = base64_encode(hash_hmac('sha1', $param_uri, $secretKey));
?
java:
1、用hashmap存储元素,键值对方式 。
MapString, String hashMap = new HashMapString, String(){
{
put("appid", "123");
put("apikey", "456");
put("secretKey", "789");
put("timestamp", "当前UNIX 时间戳,秒数,java中获取");
}
};
2、java中可以通过Timestamp获得UNIX 时间戳 。
3、然后对hashmap进行升序排序 。
4、然后写一个方法遍历hashmap,拼接成字符串格式为apikey=456appid=123secretkey=789timestamp=1389379498
然后对该字符串进行encoded编码,输出格式为apikey=456appid=123secretkey=789×tamp=1389379498
5、通过java中HMAC-SHA1算法加密该字符串,$secretKey为安全密钥 。
6、再通过base64_encode加密第5步产生的字符串 。这是最终sig结果 。
怎么把php AES128的代码转成javapublic class SimpleCrypto {
public static String encrypt(String seed, String cleartext) throws Exception {
byte[] rawKey = getRawKey(seed.getBytes());
byte[] result = encrypt(rawKey, cleartext.getBytes());
return toHex(result);
}
public static String decrypt(String seed, String encrypted) throws Exception {
byte[] rawKey = getRawKey(seed.getBytes());
byte[] enc = toByte(encrypted);
byte[] result = decrypt(rawKey, enc);
return new String(result);
}
private static byte[] getRawKey(byte[] seed) throws Exception {
KeyGenerator kgen = KeyGenerator.getInstance("AES");
SecureRandom sr = SecureRandom.getInstance("SHA1PRNG");
sr.setSeed(seed);
kgen.init(128, sr); // 192 and 256 bits may not be available
SecretKey skey = kgen.generateKey();
byte[] raw = skey.getEncoded();
return raw;
}
private static byte[] encrypt(byte[] raw, byte[] clear) throws Exception {
SecretKeySpec skeySpec = new SecretKeySpec(raw, "AES");
Cipher cipher = Cipher.getInstance("AES");
cipher.init(Cipher.ENCRYPT_MODE, skeySpec);
byte[] encrypted = cipher.doFinal(clear);
return encrypted;
}
private static byte[] decrypt(byte[] raw, byte[] encrypted) throws Exception {
SecretKeySpec skeySpec = new SecretKeySpec(raw, "AES");
Cipher cipher = Cipher.getInstance("AES");
cipher.init(Cipher.DECRYPT_MODE, skeySpec);
byte[] decrypted = cipher.doFinal(encrypted);
return decrypted;
}
public static String toHex(String txt) {
return toHex(txt.getBytes());
}
public static String fromHex(String hex) {
return new String(toByte(hex));
}
public static byte[] toByte(String hexString) {
int len = hexString.length()/2;
byte[] result = new byte[len];
for (int i = 0; ilen; i)
result[i] = Integer.valueOf(hexString.substring(2*i, 2*i 2), 16).byteValue();
return result;
}
public static String toHex(byte[] buf) {
if (buf == null)
return "";
StringBuffer result = new StringBuffer(2*buf.length);
for (int i = 0; ibuf.length; i) {
appendHex(result, buf[i]);
}
return result.toString();
}
private final static String HEX = "0123456789ABCDEF";
private static void appendHex(StringBuffer sb, byte b) {
sb.append(HEX.charAt((b4)0x0f)).append(HEX.charAt(b0x0f));
}
}
如何将PHP转换成JAVA先了解PHP的基本语言结构 , 然后去尝试读懂PHP项目的代码,然后就按着代码功能,用JAVA语言重写一遍就是了,暂不知道有直接从PHP代码转成JAVA的工具 。。。
PHP代码转为java代码没法转的php代码换java,这个php中调用了不少外部对象php代码换java,没人能猜到那些是什么内容的 。
【php代码换java php代码转java】php代码换java的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于php代码转java、php代码换java的信息别忘了在本站进行查找喔 。
推荐阅读
- 视频号怎么转到微信号,微信的视频怎么转到
- 怎么把文件刻录的u盘,怎么把文件刻录的u盘导出
- 网络游戏解说海外游戏,外服游戏解说
- c语言函数getday c语言函数getchar
- 公众号的编辑器怎么用手机,公众号编辑器 手机
- 包含恐怖柯南解谜游戏的词条
- 虚拟机格式转换软件,虚拟机文件转换
- 列举php常见的数据类型 php常用数据类型的语法格式
- 偶然进去直播间是什么歌,偶然进去直播间是什么歌词