java 解密 php_使用JAVA解密PHP解密
iv;
$str?=?$isBinary???$str?:?utf8_decode($str);
$td?=?mcrypt_module_open('rijndael-128',?'?',?'cbc',?$iv);
mcrypt_generic_init($td,?$this->key,?$iv);
$encrypted?=?mcrypt_generic($td,?$str);
mcrypt_generic_deinit($td);
mcrypt_module_close($td);
return?$isBinary???$encrypted?:?bin2hex($encrypted);
}
function?decrypt($code,?$isBinary?=?false)?{
$code?=?$isBinary???$code?:?$this->hex2bin($code);
$iv?=?$this->iv;
$td?=?mcrypt_module_open('rijndael-128',?'?',?'cbc',?$iv);
mcrypt_generic_init($td,?$this->key,?$iv);
$decrypted?=?mdecrypt_generic($td,?$code);
mcrypt_generic_deinit($td);
mcrypt_module_close($td);
return?$isBinary???trim($decrypted)?:?utf8_encode(trim($decrypted));
}
protected?function?hex2bin($hexdata)?{
$bindata?=?'';
for?($i?=?0;?$i
我的Php類來加密圖像:encrypt($file,?true);?//true?to?set?is?as?binary
file_put_contents($argv[1],?$encrypted);
serpro JAVA類:import?java.security.NoSuchAlgorithmException;
import?javax.crypto.Cipher;
import?javax.crypto.NoSuchPaddingException;
import?javax.crypto.spec.IvParameterSpec;
import?javax.crypto.spec.SecretKeySpec;
public?class?MCrypt?{
static?char[]?HEX_CHARS?=?{'0','1','2','3','4','5','6','7','8','9','a','b','c','d','e','f'};
private?String?iv?=?"fedcba9876543210";//Dummy?iv?(CHANGE?IT!)
private?IvParameterSpec?ivspec;
private?SecretKeySpec?keyspec;
private?Cipher?cipher;
private?String?SecretKey?=?"0123456789abcdef";//Dummy?secretKey?(CHANGE?IT!)
public?MCrypt()
{
ivspec?=?new?IvParameterSpec(iv.getBytes());
keyspec?=?new?SecretKeySpec(SecretKey.getBytes(),?"AES");
try?{
cipher?=?Cipher.getInstance("AES/CBC/NoPadding");
}?catch?(NoSuchAlgorithmException?e)?{
//?TODO?Auto-generated?catch?block
e.printStackTrace();
}?catch?(NoSuchPaddingException?e)?{
//?TODO?Auto-generated?catch?block
e.printStackTrace();
}
}
public?byte[]?encrypt(String?text)?throws?Exception
{
if(text?==?null?||?text.length()?==?0)
throw?new?Exception("Empty?string");
byte[]?encrypted?=?null;
try?{
cipher.init(Cipher.ENCRYPT_MODE,?keyspec,?ivspec);
encrypted?=?cipher.doFinal(padString(text).getBytes());
}?catch?(Exception?e)
{
throw?new?Exception("[encrypt]?"?+?e.getMessage());
}
return?encrypted;
}
public?byte[]?decrypt(String?code)?throws?Exception
{
if(code?==?null?||?code.length()?==?0)
throw?new?Exception("Empty?string");
System.out.println("after?if");
byte[]?decrypted?=?null;
try?{
System.out.println("in?try");
cipher.init(Cipher.DECRYPT_MODE,?keyspec,?ivspec);
System.out.println("2");
decrypted?=?cipher.doFinal(hexToBytes(code));
System.out.println("3");
//Remove?trailing?zeroes
if(?decrypted.length?>?0)
{
System.out.println("in?if");
int?trim?=?0;
for(?int?i?=?decrypted.length?-?1;?i?>=?0;?i--?)?if(?decrypted[i]?==?0?)?trim++;
if(?trim?>?0?)
{
byte[]?newArray?=?new?byte[decrypted.length?-?trim];
System.arraycopy(decrypted,?0,?newArray,?0,?decrypted.length?-?trim);
decrypted?=?newArray;
}
}
System.out.println("after?if");
}?catch?(Exception?e)
{
throw?new?Exception("[decrypt]?"?+?e.getMessage());
}
return?decrypted;
}
public?static?String?bytesToHex(byte[]?buf)
{
char[]?chars?=?new?char[2?*?buf.length];
for?(int?i?=?0;?i?>>?4];
chars[2?*?i?+?1]?=?HEX_CHARS[buf[i]?&?0x0F];
}
return?new?String(chars);
}
public?static?byte[]?hexToBytes(String?str)?{
if?(str==null)?{
return?null;
}?else?if?(str.length()
我的Java類:import?java.io.File;
import?java.io.FileInputStream;
import?java.io.FileNotFoundException;
import?java.io.IOException;
public?class?Decrypt?{
public?static?void?main(String[]?args)?{
File?file?=?new?File(args[0]);
FileInputStream?fin?=?null;
try?{
fin?=?new?FileInputStream(file);
byte?fileContent[]?=?new?byte[(int)?file.length()];
fin.read(fileContent);
String?fileToDecrypt?=?new?String(fileContent);
MCrypt?crypter?=?new?MCrypt();
String?decrypted?=?new?String(crypter.decrypt(fileToDecrypt));
System.out.println(decrypted);
}?catch?(FileNotFoundException?e)?{
System.out.println("File?not?found"?+?e);
}?catch?(IOException?ioe)?{
System.out.println("Exception?while?reading?file?"?+?ioe);
}?catch?(Exception?e){
System.out.println("An?exception?occured:?"?+?e);
}?finally?{
try?{
if?(fin?!=?null)?{
fin.close();
}
}?catch?(IOException?ioe)?{
System.out.println("Error?while?closing?stream:?"?+?ioe);
}
}
}
}
總結
以上是生活随笔為你收集整理的java 解密 php_使用JAVA解密PHP解密的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: java虚拟机类加载机制_《深入理解ja
- 下一篇: mysql三次握手_TCP的三次握手和四