private static final Charset UTF_8 = StandardCharsets.UTF_8; public static String getSignStr(Map<String, Object> params) { List<String> paramStr = new ArrayList<>(params.size()); for (String key : params.keySet()) { paramStr.add(key + "=" + params.get(key)); } Collections.sort(paramStr); return StringUtils.join(paramStr, "&"); } public static String generateSign(String content, String algorithm, String securityKey content += securityKey; System.out.println("sign_str: " + content); MessageDigest md; try { md = MessageDigest.getInstance(algorithm); } catch (NoSuchAlgorithmException e) { throw new IllegalArgumentException(e); } return bytesToHex(md.digest(content.getBytes(UTF_8))); } private static String bytesToHex(byte[] bytes) { StringBuilder sb = new StringBuilder(); for (byte b : bytes) { sb.append(String.format("%02x", b)); } return sb.toString(); } public static void main(String[] args) { HashMap<String, Object> params = new HashMap<>(10); String signType = "MD5"; String securityKey = "1c589c70f7bb2746027ce90c33d****" // 账号的securityKey SimpleDateFormat sdf = new SimpleDateFormat(); sdf.applyPattern("yyyy-MM-dd HH:mm:ss"); Date date = new Date(); // 获取当前时间 String currentTime = sdf.format(date); // 格式化为字符串 params.put("user_id", 459); params.put("role_id", 459); params.put("version", "2.0"); params.put("sign_type", signType); params.put("current_time", currentTime); String signStr = GenerateSign.getSignStr(params); System.out.println("params_str: " + signStr); String sign = GenerateSign.generateSign(signStr, signType, securityKey); System.out.println("sign: " + sign); params.put("sign", sign); }转成PHP
private static final Charset UTF_8 = StandardCharsets.UTF_8; public static String getSignStr(Map<String, Object> params) { List<String> paramStr = new ArrayList<>(params.size()); for (String key : params.keySet()) { paramStr.add(key + "=" + params.get(key)); } Collections.sort(paramStr); return StringUtils.join(paramStr, "&"); } public static String generateSign(String content, String algorithm, String securityKey content += securityKey; System.out.println("sign_str: " + content); MessageDigest md; try { md = MessageDigest.getInstance(algorithm); } catch (NoSuchAlgorithmException e) { throw new IllegalArgumentException(e); } return bytesToHex(md.digest(content.getBytes(UTF_8))); } private static String bytesToHex(byte[] bytes) { StringBuilder sb = new StringBuilder(); for (byte b : bytes) { sb.append(String.format("%02x", b)); } return sb.toString(); } public static void main(String[] args) { HashMap<String, Object> params = new HashMap<>(10); String signType = "MD5"; String securityKey = "1c589c70f7bb2746027ce90c33d****" // 账号的securityKey SimpleDateFormat sdf = new SimpleDateFormat(); sdf.applyPattern("yyyy-MM-dd HH:mm:ss"); Date date = new Date(); // 获取当前时间 String currentTime = sdf.format(date); // 格式化为字符串 params.put("user_id", 459); params.put("role_id", 459); params.put("version", "2.0"); params.put("sign_type", signType); params.put("current_time", currentTime); String signStr = GenerateSign.getSignStr(params); System.out.println("params_str: " + signStr); String sign = GenerateSign.generateSign(signStr, signType, securityKey); System.out.println("sign: " + sign); params.put("sign", sign); }转成PHP
private static final Charset UTF_8 = StandardCharsets.UTF_8;
public static String getSignStr(Map<String, Object> params) {
List<String> paramStr = new ArrayList<>(params.size());
for (String key : params.keySet()) {
paramStr.add(key + "=" + params.get(key));
}
Collections.sort(paramStr);
return StringUtils.join(paramStr, "&");
}
public static String generateSign(String content, String algorithm, String securityKey
content += securityKey;
System.out.println("sign_str: " + content);
MessageDigest md;
try {
md = MessageDigest.getInstance(algorithm);
} catch (NoSuchAlgorithmException e) {
throw new IllegalArgumentException(e);
}
return bytesToHex(md.digest(content.getBytes(UTF_8)));
}
private static String bytesToHex(byte[] bytes) {
StringBuilder sb = new StringBuilder();
for (byte b : bytes) {
sb.append(String.format("%02x", b));
}
return sb.toString();
}
public static void main(String[] args) {
HashMap<String, Object> params = new HashMap<>(10);
String signType = "MD5";
String securityKey = "1c589c70f7bb2746027ce90c33d****" // 账号的securityKey
SimpleDateFormat sdf = new SimpleDateFormat();
sdf.applyPattern("yyyy-MM-dd HH:mm:ss");
Date date = new Date(); // 获取当前时间
String currentTime = sdf.format(date); // 格式化为字符串
params.put("user_id", 459);
params.put("role_id", 459);
params.put("version", "2.0");
params.put("sign_type", signType);
params.put("current_time", currentTime);
String signStr = GenerateSign.getSignStr(params);
System.out.println("params_str: " + signStr);
String sign = GenerateSign.generateSign(signStr, signType, securityKey);
System.out.println("sign: " + sign);
params.put("sign", sign);
}转成PHP

用户500297581
2023年12月01日
|
浏览 137
以下是将给定的Java代码转换为PHP代码的示例:
复制代码
<?php
function getSignStr($params) {
$paramStr = [];
foreach ($params as $key => $value) {
$paramStr[] = $key . '=' . $value;
}
sort($paramStr);
return implode('&', $paramStr);
}
function generateSign($content, $algorithm, $securityKey) {
$content .= $securityKey;
echo "sign_str: " . $content . "\n";
$md = hash($algorithm, $content, false);
return bytesToHex(strToBytes($md));
}
function bytesToHex($bytes) {
$sb = "";
foreach ($bytes as $b) {
$sb .= sprintf("%02x", $b);
}
return $sb;
}
function strToBytes($str) {
$bytes = [];
for ($i = 0; $i < strlen($str); $i++) {
$bytes[] = ord($str[$i]);
}
return $bytes;
}
$params = [
"user_id" => 459,
"role_id" => 459,
"version" => "2.0",
"sign_type" => $signType,
"current_time" => $currentTime
];
$signType = "MD5";
$securityKey = "1c589c70f7bb2746027ce90c33d****";
$currentTime = date("Y-m-d H:i:s");
$signStr = getSignStr($params);
echo "params_str: " . $signStr . "\n";
$sign = generateSign($signStr, $signType, $securityKey);
echo "sign: " . $sign . "\n";
$params["sign"] = $sign;
?>
请注意,这只是一个简单的代码转换示例,可能需要根据实际情况进行调整和修改。
我要提问
复制内容
分享给好友
AI编程问答网 免责声明:
以上内容除特别注明外均来源于网友提问,AI编程问答网回答,权益归原著者所有;
上一篇:今日头条展示页面的设计与实现
