java aes256 加密_Java AES-256加密,字串轉Hex疑問

最近正在學習串金流,但看了對方提供的API文件,只有PHP的範例,不是很明白,所以來提問

我會有一組 hashKey 和 HashIv 和一整串的String;

HashKey : 12345678901234567890123456789012

HashIv :1234567890123456

String : MerchantID = 3430112 RespondType = JSON TimeStamp = 1485232229 Version = 1.4 MerchantOrderNo = S_1485232229 Amt = 40 ItemDesc = UnitTest;

我目前是這樣做,但結果完全不對,再麻煩各位高手幫幫忙,看看我這初學者 是不是哪裡誤解了,謝謝

public static String encrypt(String hashKey, String hashIv, String text) {

try {

SecretKeySpec skeySpec = new SecretKeySpec(hashKey.getBytes("UTF-8"), "AES");

IvParameterSpec ivParameterSpec = new IvParameterSpec(hashIv.getBytes("UTF-8"));

Cipher cipher = Cipher.getInstance("AES/CBC/PKCS5PADDING");

cipher.init(Cipher.ENCRYPT_MODE, skeySpec, ivParameterSpec);

byte[] original = cipher.doFinal(text.getBytes("UTF-8"));

return Base64.encodeBase64URLSafeString(original).toLowerCase();

} catch (Exception e) {

System.out.println(e.getMessage());

}

return null;

}

相关代码

function create_mpg_aes_encrypt ($parameter = "" , $key = "", $iv = "") {

$return_str = '';

if (!empty($parameter)) {

//將參數經過 URL ENCODED QUERY STRING

$return_str = http_build_query($parameter);

}

return trim(bin2hex(openssl_encrypt(addpadding($return_str), 'aes-256-

cbc', $key, OPENSSL_RAW_DATA|OPENSSL_ZERO_PADDING, $iv)));

}

function addpadding($string, $blocksize = 32) {

$len = strlen($string);

$pad = $blocksize - ($len % $blocksize);

$string .= str_repeat(chr($pad), $pad);

return $string;

}

$trade_info_arr = array(

'MerchantID' => 3430112,

'RespondType' => 'JSON',

'TimeStamp' => 1485232229,

'Version' => 1.4,

'MerchantOrderNo' => 'S_1485232229',

'Amt' => 40,

'ItemDesc' => 'UnitTest'

);

$mer_key = '12345678901234567890123456789012';

$mer_iv = '1234567890123456';

//交易資料經 AES 加密後取得 TradeInfo

$TradeInfo = create_mpg_aes_encrypt($trade_info_arr, $mer_key, $mer_iv)

結果為

ff91c8aa01379e4de621a44e5f11f72e4d25bdb1a18242db6cef9ef07d80b0165e476fd1d

9acaa53170272c82d122961e1a0700a7427cfa1cf90db7f6d6593bbc93102a4d4b9b66d9

974c13c31a7ab4bba1d4e0790f0cbbbd7ad64c6d3c8012a601ceaa808bff70f94a8efa5a4f

984b9d41304ffd879612177c622f75f4214fa

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值