码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • MD5加密接口


    签名算法
    app_key和app_secret由对方系统提供
    在这里插入图片描述
    MD5_CALCULATE_HASH_FOR_CHAR(中文加密与JAVA不一致)
    代码:

    *获取传输字段名的ASCII码,根据ASCII码对字段名进行排序
    
        SELECT * FROM zthr0051
          WHERE  functionid = @iv_functionid
         INTO CORRESPONDING FIELDS OF TABLE @et_sort.
    
        LOOP AT et_sort INTO DATA(es_sort).
          es_sort-ascii = cl_abap_conv_out_ce=>uccpi( es_sort-f_json ).
          MODIFY et_sort FROM es_sort.
          CLEAR:es_sort.
        ENDLOOP.
        SORT et_sort BY ascii.
        
    *接口参数赋值
        gs_per_input-timestamp = gv_timestamp+0(10).
        gs_per_input-app_key = ls_zthr0167-zkey.
        gs_per_input-person_no = gs_out_pernr-personid_ext.
        gs_per_input-name      = gs_out_pernr-ename.
        IF gs_out_pernr-sex = '1'.
          gs_per_input-gender = 'MAN'.
        ELSEIF  gs_out_pernr-sex = '2'.
          gs_per_input-gender = 'WOMEN'.
        ELSEIF  gs_out_pernr-sex = '其他'.
          gs_per_input-gender = 'OTHER'.
        ENDIF.
        gs_per_input-phone = gs_per_input-phone.
        gs_per_input-card_department_group_id = gs_out_pernr-department_id.
        
     *参数拼接
          LOOP AT gt_sort001 ASSIGNING FIELD-SYMBOL(<fs_sort001>) WHERE f_abap <> 'SIGNATURE'.
            ASSIGN COMPONENT <fs_sort001>-f_ABAP OF STRUCTURE gs_per_input TO <field>.
            IF <field> IS NOT INITIAL.
              lv_input = lv_input && <fs_sort001>-f_json && '=' && <field> && '&'.
            ENDIF.
            AT LAST.
              lv_input = lv_input && 'key=' && ls_zthr0167-secret.
            ENDAT.
          ENDLOOP.
    *对拼接后的值进行MD5加密后的值放在接口参数中,并转换为大写,传输
        CALL FUNCTION 'ZFM_GET_MD5'
          EXPORTING
            iv_string = lv_input
          IMPORTING
            ev_md5    = gs_per_input-signature.
        TRANSLATE gs_per_input-signature TO UPPER  CASE.
    

    MD5加密参考

  • 相关阅读:
    [leetcode hot150]第二百三十六题,二叉树的最近公共祖先
    Docker部署jenkins容器时,允许jenkins容器内部控制宿主机上的docker
    [算法1-排序](.NET源码学习)& LINQ & Lambda
    自动铣刀式分板机市场分析
    【黑马-SpringCloud技术栈】【06】Feign(OpenFeign)
    【C语言】程序环境和预处理
    SuperMap 云原生常见问题解决办法-keycloak启动异常
    Mybatis+Servlet+Mysql 整合的一个小项目:对初学者非常友好,有助于初学者很快的上手Java Web
    牛客网之SQL100题(2)
    在ffmpeg中,网络视频流h264为什么默认的转为YUV而不是其他格式
  • 原文地址:https://blog.csdn.net/weixin_49691117/article/details/139991075
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号