小程序,h5,移动端处理md5加密接口,请求数据加密方式AES-128-ECB

本文解释了AES-128-ECB对称加密算法在128位密钥下的工作原理,以及MD5接口加密如何通过拼接参数和密钥生成签名以确保数据完整。同时提到了MD5的安全性局限和推荐的使用场景。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.AES-128-ECB表示使用AES(Advanced Encryption Standard)算法,密钥长度为128位,工作模式为ECB(Electronic Codebook)的一种对称加密方式。

其中:

  • AES是一种常用的对称加密算法,被广泛地应用于各种信息安全场景中。
  • 128表示密钥长度为128位(16字节)。AES支持的密钥长度还有192位和256位。
  • ECB代表电子密码本(Electronic Codebook)模式,是最基本的一种工作模式,将明文分成固定大小的块,每个块独立地进行加密。ECB模式存在明文块重复可导致密文块重复的风险。

综上,AES-128-ECB意思是:

使用128位密钥的AES算法,以ECB电子密码本模式来对明文进行分组加密。

它提供了基本的加密保护,但相比其他模式如CBC,CFB等,ECB模式在许多场景下安全性较弱,应谨慎使用。

2.MD5接口加密通常指在接口请求中使用MD5算法对请求参数进行加密,以保证参数不被篡改的一种简单安全机制。

具体做法是:

1. 接口请求方和服务端双方约定一个密钥,例如"123456"。

2. 当请求方需要请求某个接口时,将所有请求参数按照约定的顺序拼接成字符串,例如"a=1&b=2"。

3. 对这个参数字符串以及密钥一起做MD5哈希运算,得到一个32位长度的MD5值,例如"e10adc3949ba59abbe56e057f20f883e"。

4. 在接口请求中将这个MD5值作为参数传给服务端。

5. 服务端收到请求后,使用同样的密钥和方法计算MD5值,与请求附带的MD5值比较。

6. 如果一致,则证明参数没有被篡改,然后继续处理请求。

这样通过MD5摘要验证,可以防止参数在传输中被非法修改。但MD5仅能防篡改,不能防止披露,所以需要与HTTPS等其他加密传输手段配合使用。

下面请看示例

这个是接口文档说明

签名方式:
  1. 将所有参数(注意是所有参数),除去sign本身,按参数名字母ASCII升序排序;
  2. 将所有参数按照key=value的方式凭借起来;
  3. 将秘钥和第2步的字符串拼接起来;
  4. 将这个字符串MD5加密(32位小写)得到sign,
  5. sign作为参数传递过来

使用

文件目录

我这个是引入的md5.js 的文件 下面是代码内容 可以自己复制

/*
 * JavaScript MD5 1.0.1
 * https://github.com/blueimp/JavaScript-MD5
 *
 * Copyright 2011, Sebastian Tschan
 * https://blueimp.net
 *
 * Licensed under the MIT license:
 * http://www.opensource.org/licenses/MIT
 * 
 * Based on
 * A JavaScript implementation of the RSA Data Security, Inc. MD5 Message
 * Digest Algorithm, as defined in RFC 1321.
 * Version 2.2 Copyright (C) Paul Johnston 1999 - 2009
 * Other contributors: Greg Holt, Andrew Kepert, Ydnar, Lostinet
 * Distributed under the BSD License
 * See http://pajhome.org.uk/crypt/md5 for more info.
 */

/*jslint bitwise: true */
/*global unescape, define */

    /*
    * Add integers, wrapping at 2^32. This uses 16-bit operations internally
    * to work around bugs in some JS interpreters.
    */
    function safe_add(x, y) {
        var lsw = (x & 0xFFFF) + (y & 0xFFFF),
            msw = (x >> 16) + (y >> 16) + (lsw >> 16);
        return (msw << 16) | (lsw & 0xFFFF);
    }

    /*
    * Bitwise rotate a 32-bit number to the left.
    */
    function bit_rol(num, cnt) {
        return (num << cnt) | (num >>> (32 - cnt));
    }

    /*
    * These functions implement the four basic operations the algorithm uses.
    */
    function md5_cmn(q, a, b, x, s, t) {
        return safe_add(bit_rol(safe_add(safe_add(a, q), safe_add(x, t)), s), 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值