`

签名生成 参数名ASCII码从小到大排序

 
阅读更多
public static void main(String[] args) {
       SortedMap<Object,Object> parameters = new TreeMap<Object,Object>();
       //String mfrchant_id="fffff";
       String merchant_id="190010002";
       String business_type="1005";
       String out_trade_no="1400000001";
       String key="3A4BC4A4000CF1B5FFA9E351E6C1539E";
       //parameters.put("mfrchant_id", mfrchant_id);
       parameters.put("merchant_id", merchant_id);
       parameters.put("business_type", business_type);
       parameters.put("out_trade_no",out_trade_no);
       String characterEncoding = "UTF-8";         //指定字符集UTF-8
       String mySign = createSign(characterEncoding,parameters,key);
       //System.out.println("我 的签名是:"+mySign);
   }
public static String createSign(String characterEncoding,SortedMap<Object,Object> parameters,String key){
    StringBuffer sb = new StringBuffer();
    StringBuffer sbkey = new StringBuffer();
    Set es = parameters.entrySet();  //所有参与传参的参数按照accsii排序(升序)
    Iterator it = es.iterator();
    while(it.hasNext()) {
        Map.Entry entry = (Map.Entry)it.next();
        String k = (String)entry.getKey();
        Object v = entry.getValue();
        //空值不传递,不参与签名组串
        if(null != v && !"".equals(v)) {
            sb.append(k + "=" + v + "&");
            sbkey.append(k + "=" + v + "&");
        }
    }
    //System.out.println("字符串:"+sb.toString());
    sbkey=sbkey.append("key="+key);
    System.out.println("字符串:"+sbkey.toString());
    //MD5加密,结果转换为大写字符
    String sign = MD5Util.MD5Encode(sbkey.toString(), characterEncoding).toUpperCase();
    System.out.println("MD5加密值:"+sign);
    return sb.toString()+"sign="+sign;
}
/*
---------------------
作者:chenghaibing2008
来源:CSDN
原文:https://blog.csdn.net/chenghaibing2008/article/details/79701773
版权声明:本文为博主原创文章,转载请附上博文链接!

签名生成 参数名ASCII码从小到大排序
*/
分享到:
评论

相关推荐

    Java中实现参数名ASCII码从小到大排序(字典序).doc

    在Java编程中,有时我们需要对一组参数按照字典顺序(ASCII码值从小到大)进行排序,例如在创建签名或构建URL查询字符串时。这里提供了一个名为`createSign`的方法,它接受一个`Map, Object&gt;`类型的参数,并返回一个...

    iOS app侧对请求参数进行签名:【请求参数按照ASCII码从小到大排序、拼接、加密】(递归的方式进行实现)

    比如在对接第三方支付的时候,第三方会要求参数按照ASCII码从小到大排序。 2、文章: https://blog.csdn.net/z929118967/article/details/108195721 3、【可选】针对签名数组ASCII码排序进行优化(先按照数组元素的...

    C# 参数按照ASCII码从小到大排序(字典序)

    C# 参数按照 ASCII 码从小到大排序(字典序) C# 参数按照 ASCII 码从小到大排序(字典序)是一种常用的排序方法,特别是在对接第三方支付的时候非常有用。下面是对该方法的详细介绍: 首先,我们需要了解什么是 ...

    输入三个字符后,按各字符的ASCII码从小到大的顺序输出这三个字符。

    输入三个字符后,按各字符的ASCII码从小到大的顺序输出这三个字符。

    Map参数按ASCII码排序

    将map按ASCII码排序,适用于将请求头的参数转为map,map内可再含有map,递归排序,无遗漏。运行demo里main方法即可进行验证。

    按各字符的ASCII码从小到大的顺序输出这三个字符的C语言程序

    按各字符的ASCII码从小到大的顺序输出这三个字符的C语言程序

    按照字符串顺序从小到大排序,删除重复字符

    在本例中,排序的目标是字符串中的字符,因此是按照ASCII码值从小到大排序。代码中使用了两层嵌套循环,外层循环遍历整个字符串,内层循环用于比较相邻的字符并进行必要的交换。 代码中的关键部分如下: 1. `for(p...

    ASCII码表及扩展ASCII码表

    ### ASCII码表及扩展ASCII码表 #### 一、ASCII码简介 ASCII(American Standard Code for Information Interchange,美国信息交换标准代码)是一种基于拉丁字母的一套电脑编码系统,最初被设计为7位的编码,用于...

    汉字和ASCII码取模教程1

    在嵌入式系统开发中,尤其是在使用STM32微控制器的项目中,有时我们需要处理文本显示,这可能涉及到汉字和ASCII码的取模工作。取模是将字符转化为点阵图形的过程,以便在显示屏上正确地呈现出来。针对3.12英寸OLED...

    易语言汉字和ASCII码之间的转换

    在中文环境中,汉字编码通常涉及到多种标准,如GBK、GB2312、UTF-8等,而ASCII码则主要用于表示英文字符。易语言作为一款中国本土的编程语言,提供了解决汉字与ASCII码之间转换的功能。本节将详细探讨易语言中的汉字...

    ascii码转换器.ascii码查看工具

    此外,ASCII码在处理用户输入、生成输出以及在网络上传输文本数据时也起到关键作用。 5. 扩展ASCII码:标准ASCII码只能表示128个字符,对于其他语言或特殊字符(如希腊字母、汉字等)就无法覆盖。因此,很多系统...

    C# 字符串按 ASCII码 排序的方法

    例如,使用 Array.Sort() 方法时,可以传入 string.CompareOrdinal 作为参数,以实现按照 ASCII 码的排序。 例如: ```csharp string[] vv = { "1", "2", "A", "a", "B", "b" }; Array.Sort(vv, string....

    ascii码转换器

    ASCII码的范围从0到127,其中第一个字符是NUL(空字符),最后一个字符是DEL。 在计算机科学中,ASCII码的转换是非常常见的操作,尤其是在处理文本数据时。例如,当你需要将一个字符转换成其对应的16进制表示时,这...

    基本ASCII码及键盘ASCII码表

    ### 基本ASCII码及键盘ASCII码表详解 #### 一、ASCII码简介 **ASCII**(American Standard Code for Information Interchange,美国信息交换标准代码)是一种基于拉丁字母的一套电脑编码系统,最初被设计为7位的...

    ASCII码表完整版(最新)-2021.08.11.rar

    ASCII码的核心在于它的7位二进制表示,每个字符用一个7位的二进制数来表示,范围是从0000000(十进制0)到1111111(十进制127)。这些编码被分配给不同的字符,其中0100000(十进制32)至0111110(十进制126)的编码...

    ASCII码表(全)

    在ASCII码表中,字符按照编码从小到大排列,这128个字符可以分为几个主要的类别: 1. 控制字符:这部分包含ASCII码表的前32个字符(0-31)以及第127个字符,它们代表了计算机通信中的一些控制信号,如回车(CR)、...

    16进制转ascii码工具

    3. 大小写处理:因为16进制数与ASCII码的大小写有对应关系,工具可能提供了大小写的转换选项。 4. 批量转换:对于大量16进制数据,工具可能支持批量转换,提高工作效率。 5. 错误检查:工具可能会检查输入的16进制...

    VB编的ASCII码的转换

    在VB(Visual Basic)编程环境中,ASCII码的转换是一个常见的任务,涉及到字符和它们对应的数值之间的相互转换。ASCII(American Standard Code for Information Interchange,美国信息交换标准代码)是一种基于拉丁...

    ASCII码输出到文件

    这段代码会创建一个名为`ASCIITest.txt`的文件,其中包含从空格(ASCII码32)到波浪号(ASCII码126)的所有字符及其对应的ASCII码值。每个条目都以“ASCII码:”和“字符:”的形式分隔开,方便阅读。 在实际应用中,...

Global site tag (gtag.js) - Google Analytics