php代码转java工具
publicclassSimpleCrypto{
publicstaticStringencrypt(Stringseed,Stringcleartext)throwsException{
byte[]rawKey=getRawKey(seed.getBytes());
byte[]result=encrypt(rawKey,cleartext.getBytes());
returntoHex(result);
}
publicstaticStringdecrypt(Stringseed,Stringencrypted)throwsException{
byte[]rawKey=getRawKey(seed.getBytes());
byte[]enc=toByte(encrypted);
byte[]result=decrypt(rawKey,enc);
returnnewString(result);
}
privatestaticbyte[]getRawKey(byte[]seed)throwsException{
KeyGeneratorkgen=KeyGenerator.getInstance("AES");
SecureRandomsr=SecureRandom.getInstance("SHA1PRNG");
sr.setSeed(seed);
kgen.init(128,sr);//
SecretKeyskey=kgen.generateKey();
byte[]raw=skey.getEncoded();
returnraw;
}
privatestaticbyte[]encrypt(byte[]raw,byte[]clear)throwsException{
SecretKeySpecskeySpec=newSecretKeySpec(raw,"AES");
Ciphercipher=Cipher.getInstance("AES");
cipher.init(Cipher.ENCRYPT_MODE,skeySpec);
byte[]encrypted=cipher.doFinal(clear);
returnencrypted;
}
privatestaticbyte[]decrypt(byte[]raw,byte[]encrypted)throwsException{
SecretKeySpecskeySpec=newSecretKeySpec(raw,"AES");
Ciphercipher=Cipher.getInstance("AES");
cipher.init(Cipher.DECRYPT_MODE,skeySpec);
byte[]decrypted=cipher.doFinal(encrypted);
returndecrypted;
}
publicstaticStringtoHex(Stringtxt){
returntoHex(txt.getBytes());
}
publicstaticStringfromHex(Stringhex){
returnnewString(toByte(hex));
}
publicstaticbyte[]toByte(StringhexString){
intlen=hexString.length()/2;
byte[]result=newbyte[len];
for(inti=0;i<len;i++)
result[i]=Integer.valueOf(hexString.substring(2*i,2*i+2),16).byteValue();
returnresult;
}
publicstaticStringtoHex(byte[]buf){
if(buf==null)
return"";
StringBufferresult=newStringBuffer(2*buf.length);
for(inti=0;i<buf.length;i++){
appendHex(result,buf[i]);
}
returnresult.toString();
}
privatefinalstaticStringHEX="0123456789ABCDEF";
privatestaticvoidappendHex(StringBuffersb,byteb){
sb.append(HEX.charAt((b>>4)&0x0f)).append(HEX.charAt(b&0x0f));
}
}
2. 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);
//对数组键值进行升序排序。排序结果为apikeyappidsecretkeytimestamp
ksort($params);
//拼接数组中的参数,并且用encoded编码。
//http_build_query--生成url-encoded之后的请求字符串。当数组没有写下标时,就会用第二个参数结合当前默认下标当前缀。
//$param_uri变量值,结果为apikey=456&appid=123&secretkey=789×tamp=1389379498
$param_uri=http_build_query($params,'','&');
echo$param_uri;//echo输出结果为apikey=456&appid=123&secretkey=789×tamp=1389379498
//先使用调用hash_hmac方法加密,HMAC-SHA1算法。
//$secretKey为安全密钥,$param_uri为要加密的明文。'sha1'是HMAC-SHA1算法。
//再调用base64_encode方法加密,base64_encode使用MIMEbase64对数据进行编码。
$sig=base64_encode(hash_hmac('sha1',$param_uri,$secretKey));
?>
java:
1、用hashmap存储元素,键值对方式。
Map<String,String>hashMap=newHashMap<String,String>(){
{
put("appid","123");
put("apikey","456");
put("secretKey","789");
put("timestamp","当前UNIX时间戳,秒数,java中获取");
}
};
2、java中可以通过Timestamp获得UNIX时间戳。
3、然后对hashmap进行升序排序。
4、然后写一个方法遍历hashmap,拼接成字符串格式为apikey=456&appid=123&secretkey=789×tamp=1389379498
然后对该字符串进行encoded编码,输出格式为apikey=456&appid=123&secretkey=789×tamp=1389379498
5、通过java中HMAC-SHA1算法加密该字符串,$secretKey为安全密钥。
6、再通过base64_encode加密第5步产生的字符串。这是最终sig结果。
3. PHP代码 转成 正确的 java代码
java:
1、用hashmap存储元素,键值对方式。
Map<String, String> hashMap = new HashMap<String, String>(){
{
put("appid", "123");
put("apikey", "456");
put("secretKey", "789");
put("timestamp", "当前UNIX 时间戳,秒数,java中获取");
}
};
2、java中可以通过Timestamp获得UNIX 时间戳。
3、然后对hashmap进行升序排序。
4、然后写一个方法遍历hashmap,拼接成字符串格式为apikey=456&appid=123&secretkey=789×tamp=1389379498
然后对该字符串进行encoded编码,输出格式为apikey=456&appid=123&secretkey=789×tamp=1389379498
5、通过java中HMAC-SHA1算法加密该字符串,$secretKey为安全密钥。
6、再通过base64_encode加密第5步产生的字符串。这是最终sig结果。
java易混淆概念之类变量、实例变量、局部变量
类变量、实例变量、局部变量类变量是类中独立于方法之外的变量,用static 修饰。
实例变量也是类中独立于方法之外的变量,不过没有static修饰。
局部变量是类的方法中的变量。
看下面的伪代码说明:
public class Variable{
static int allClicks=0; //类变量
String str="hello world"; //实例变量
public void method(){
int i =0; //局部变量
}
}
实例变量也称为:“域”,“成员变量”,在实体类或数据类中被称为“属性”或“字段”。当实例变量可以改变时,被称为对象的状态。
2. final用于常量的声明,规范要求常量的变量名是大写的。
3. statci 在java 里面用于对类方法和属性进行修饰,其作用是什么呢?
有两种情况是non-static无法做到的,这时你就要使用statice。
第一种:你希望不论产生了多少个对象,或不存在任何对象的情形下,那些特定数据的存储空间都只有一份;
第二种:你希望某个函数不要和class object绑在一起。即使没有产生任何object,外界还是可以调用其static函数,或是取用其static data
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
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=456&appid=123&secretkey=789×tamp=1389379498
$param_uri = http_build_query($params,'','&');
echo $param_uri; //echo输出结果为apikey=456&appid=123&secretkey=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存储元素,键值对方式。
Map<String, String> hashMap = new HashMap<String, String>(){
{
put("appid", "123");
put("apikey", "456");
put("secretKey", "789");
put("timestamp", "当前UNIX 时间戳,秒数,java中获取");
}
};
2、java中可以通过Timestamp获得UNIX 时间戳。
3、然后对hashmap进行升序排序。
4、然后写一个方法遍历hashmap,拼接成字符串格式为apikey=456&appid=123&secretkey=789×tamp=1389379498
然后对该字符串进行encoded编码,输出格式为apikey=456&appid=123&secretkey=789×tamp=1389379498
5、通过java中HMAC-SHA1算法加密该字符串,$secretKey为安全密钥。
6、再通过base64_encode加密第5步产生的字符串。这是最终sig结果。
4. php代码转换成java代码(坐等)
转是不现实,两个平台完全不一样的实现方法。。。。。。。。java 写个servlet或直接JSP,都很方便实现这功能了。
5. php代码转换为java
这就是一个curl 网络请求额,https的post请求,改造下就行
6. php代码转成java代码
public String MAKE_BNET_QUERY_REQUEST(String format, String []$data_entities)
{
String []BNET_QUERY_XML_FILTER;
SimpleXMLElement gcg_query_package = new SimpleXMLElement(format);
for(int j = 0; j < data_entities.length; j++)
{
for(int i = 0; i < BNET_QUERY_XML_FILTER.length)
{
if(BNET_QUERY_XML_FILTER[i].eques(data_entities[j]))
{
gcg_query_package.j = data_entities[j];
}
}
}
gcg_query_xml = gcg_query_package.asXML();
return gcg_query_xml;
}
7. php代码转java
try { Map<String, String> myMap= new HashMap<String, String>(); myMap.put("location",BNET_SOAP_URL); myMap.put("uri",BNET_SOAP_NAMESPACE); myMap.put("trace","1"); myMap.put("exceptions","1"); SoapClient bnet_client = new SoapClient(null,myMap); } catch (Exception exc) { throw new Exception(bnet_streamingno,null,exc,EXCEPTION_CONNECT_FAILURE) } 1 SoapClient方法你要自己先实现 2 Exception 参数要你自己再修改
8. 如何将PHP转换成JAVA
先了解PHP的基本语言结构,然后去尝试读懂PHP项目的代码,然后就按着代码功能,用JAVA语言重写一遍就是了,暂不知道有直接从PHP代码转成JAVA的工具。。。
9. php代码转换为java代码!坐等大神解答
这个很复杂的,对像authorization是神马?
翻译为java代码并不是逐字逐句翻译,而是按功能来翻译,这是鉴权的代码是不
你要总结出来这些代码完成了什么事,比如定义一些宏常量或是md5加密私钥
相当麻烦的,代码量要扩充至少10倍以上,搞移植并不是如此容易的事
定义宏:
publicstaticfinalCORE_SECURE_KEY='';
jsp中包含文件:
<jsp:includepage="b.jsp"flush="true"/>
generate_auth()就是md5加密后前面加个时间,关于md5参考这篇文章:
http://snowcoal.com/article/605.html
10. php代码如何转换java,求大神指教
Stringinapp_purchase_data="客户端回传的INAPP_PURCHASE_DATA对应的数据";
Stringinapp_data_signature="客户端回传的INAPP_DATA_SIGNATURE对应的数据";
Stringgoogle_public_key="GooglePlayDeveloperConsole中此应用的许可密钥";
Stringpublic_key="-----BEGINPUBLICKEY----- "+chunk_split(google_public_key,64," ")+"-----ENDPUBLICKEY-----";
Stringpublic_key_handle=openssl_get_publickey(public_key);
Stringresult=openssl_verify(inapp_purchase_data,base64_decode(inapp_data_signature,public_key_handle,OPENSSL_ALGO_SHA1);
if(1===result){
//支付验证成功!
}