import java.security.MessageDigest;
import java.util.TreeMap;
class SignatureGenerator {
String secret
= "073fafcd9fea35fbe060007f0100d913";
TreeMap
<String, String
> params
= new TreeMap
<>(); params.put("appKey", "hbcyjsyxgs");
params.put("content", "{\"xm\":\"张三\",\"xb\":\"1\",\"sfzh\":\"330102190010101234\",\"lxdh\":\"13333333333\",\"hksx\":\"330102\",\"hkxz\":\"X路X号X幢X室\",\"whcd\":\"20\",\"hyzk\":\"10\",\"xy\":\"5\",\"glm\":\"330102501001\",\"xzdxz\":\"X幢X室\",\"fdxm\":\"李四\",\"fdgmsfhm\":\"330102190010101234\",\"fdlxdh\":\"13333333333\",\"bl1\":\"XX公司\",\"dwfzr\":\"张三\",\"dwlxdh\":\"xxxx-xxxxxxxx\",\"gzdz\":\"XX公司\",\"sblx\":\"1\"}");
params.put("format", "json");
params.put("method", "processAddZzsbtLdrk");
params.put("ryzpBase64", "1");
params.put("sfzzpBase64", "1");
params.put("v", "1.0");
StringBuilder signStr = new StringBuilder();
signStr.append(secret);
for (String key
: params.
keySet()) { signStr.append(key).append(params.get(key));
}
signStr.append(secret);
byte[] digest = md.digest(signStr.toString().getBytes("UTF-8"));
StringBuilder hexStr = new StringBuilder();
for (byte b : digest) {
hexStr.
append(String.
format("%02x", b
)); }
System.
out.
println("签名字符串: " + signStr.
toString()); System.
out.
println("SHA1签名: " + hexStr.
toString()); }
}
aW1wb3J0IGphdmEuc2VjdXJpdHkuTWVzc2FnZURpZ2VzdDsKaW1wb3J0IGphdmEudXRpbC5UcmVlTWFwOwoKIGNsYXNzIFNpZ25hdHVyZUdlbmVyYXRvciB7CiAgICBwdWJsaWMgc3RhdGljIHZvaWQgbWFpbihTdHJpbmdbXSBhcmdzKSB0aHJvd3MgRXhjZXB0aW9uIHsKICAgICAgICBTdHJpbmcgc2VjcmV0ID0gIjA3M2ZhZmNkOWZlYTM1ZmJlMDYwMDA3ZjAxMDBkOTEzIjsKICAgICAgICAKICAgICAgICBUcmVlTWFwPFN0cmluZywgU3RyaW5nPiBwYXJhbXMgPSBuZXcgVHJlZU1hcDw+KCk7CiAgICAgICAgcGFyYW1zLnB1dCgiYXBwS2V5IiwgImhiY3lqc3l4Z3MiKTsKICAgICAgICBwYXJhbXMucHV0KCJjb250ZW50IiwgIntcInhtXCI6XCLlvKDkuIlcIixcInhiXCI6XCIxXCIsXCJzZnpoXCI6XCIzMzAxMDIxOTAwMTAxMDEyMzRcIixcImx4ZGhcIjpcIjEzMzMzMzMzMzMzXCIsXCJoa3N4XCI6XCIzMzAxMDJcIixcImhreHpcIjpcIljot69Y5Y+3WOW5oljlrqRcIixcIndoY2RcIjpcIjIwXCIsXCJoeXprXCI6XCIxMFwiLFwieHlcIjpcIjVcIixcImdsbVwiOlwiMzMwMTAyNTAxMDAxXCIsXCJ4emR4elwiOlwiWOW5oljlrqRcIixcImZkeG1cIjpcIuadjuWbm1wiLFwiZmRnbXNmaG1cIjpcIjMzMDEwMjE5MDAxMDEwMTIzNFwiLFwiZmRseGRoXCI6XCIxMzMzMzMzMzMzM1wiLFwiYmwxXCI6XCJYWOWFrOWPuFwiLFwiZHdmenJcIjpcIuW8oOS4iVwiLFwiZHdseGRoXCI6XCJ4eHh4LXh4eHh4eHh4XCIsXCJnemR6XCI6XCJYWOWFrOWPuFwiLFwic2JseFwiOlwiMVwifSIpOwogICAgICAgIHBhcmFtcy5wdXQoImZvcm1hdCIsICJqc29uIik7CiAgICAgICAgcGFyYW1zLnB1dCgibWV0aG9kIiwgInByb2Nlc3NBZGRaenNidExkcmsiKTsKICAgICAgICBwYXJhbXMucHV0KCJyeXpwQmFzZTY0IiwgIjEiKTsKICAgICAgICBwYXJhbXMucHV0KCJzZnp6cEJhc2U2NCIsICIxIik7CiAgICAgICAgcGFyYW1zLnB1dCgidiIsICIxLjAiKTsKCiAgICAgICAgU3RyaW5nQnVpbGRlciBzaWduU3RyID0gbmV3IFN0cmluZ0J1aWxkZXIoKTsKICAgICAgICBzaWduU3RyLmFwcGVuZChzZWNyZXQpOwogICAgICAgIGZvciAoU3RyaW5nIGtleSA6IHBhcmFtcy5rZXlTZXQoKSkgewogICAgICAgICAgICBzaWduU3RyLmFwcGVuZChrZXkpLmFwcGVuZChwYXJhbXMuZ2V0KGtleSkpOwogICAgICAgIH0KICAgICAgICBzaWduU3RyLmFwcGVuZChzZWNyZXQpOwoKICAgICAgICBNZXNzYWdlRGlnZXN0IG1kID0gTWVzc2FnZURpZ2VzdC5nZXRJbnN0YW5jZSgiU0hBLTEiKTsKICAgICAgICBieXRlW10gZGlnZXN0ID0gbWQuZGlnZXN0KHNpZ25TdHIudG9TdHJpbmcoKS5nZXRCeXRlcygiVVRGLTgiKSk7CiAgICAgICAgU3RyaW5nQnVpbGRlciBoZXhTdHIgPSBuZXcgU3RyaW5nQnVpbGRlcigpOwogICAgICAgIGZvciAoYnl0ZSBiIDogZGlnZXN0KSB7CiAgICAgICAgICAgIGhleFN0ci5hcHBlbmQoU3RyaW5nLmZvcm1hdCgiJTAyeCIsIGIpKTsKICAgICAgICB9CgogICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigi562+5ZCN5a2X56ym5LiyOiAiICsgc2lnblN0ci50b1N0cmluZygpKTsKICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oIlNIQTHnrb7lkI06ICIgKyBoZXhTdHIudG9TdHJpbmcoKSk7CiAgICB9Cn0=
签名字符串: 073fafcd9fea35fbe060007f0100d913appKeyhbcyjsyxgscontent{"xm":"张三","xb":"1","sfzh":"330102190010101234","lxdh":"13333333333","hksx":"330102","hkxz":"X路X号X幢X室","whcd":"20","hyzk":"10","xy":"5","glm":"330102501001","xzdxz":"X幢X室","fdxm":"李四","fdgmsfhm":"330102190010101234","fdlxdh":"13333333333","bl1":"XX公司","dwfzr":"张三","dwlxdh":"xxxx-xxxxxxxx","gzdz":"XX公司","sblx":"1"}formatjsonmethodprocessAddZzsbtLdrkryzpBase641sfzzpBase641v1.0073fafcd9fea35fbe060007f0100d913
SHA1签名: de0eea3bf070ccedfca9e2ec0068ad53aa50f54c