如何使用WindowsAPI提供的MD5加密函数(md5加密接口api)

2023-03-13 9:00:36 密语知识 思思

主要就是调用库函数,MD5加密说到底也是函数计算,没有什么思路的问题,了解md5的发明算法,本质是一个数学问题。

淘宝调用接口(API)时需要对请求参数进行签名验证。

根据参数的升序排序,连接起来,然后加上密钥进行MD5加密,产生SIgn用于数据安全校验,他们API那边也会以相同的方式加密,然后对比,一致的话,就通过,不一致的话,就拒绝访问.!

MD5 HTML 加密

其实不复杂,md5加密,只进行对比,不可逆

用php来说明

$username = $_POST['username'];

$pwd = $_POST['pwd']

$password = md5($username.$pwd)//其实公钥就是用户名,只不过将用户名与密码一起加密罢了,这样会更保密。当然,并不一定就是username与pwd连接,也有可能是别的算法

API接口签名验证_MD5加密出现不同结果的解决方法

系统在提供接口给第三方系统使用时,通常为了安全性会做接口加密。

设计原则 :使用HTTPS安全协议 或 传输内容使用非对称加密,这里采用后者。

在对参数进行加密,生成sign时,相同的参数两次加密的结果不一样。

加密规则:

1.拼接出来的字符串不一致

测试时,在加密前将要加密的字符串打印出来比较,发现两次字符串一致。

2.编码问题

加密时,两次的默认编码不一致。

在上述加上默认编码: byte[] btInput = content.getBytes("utf-8"); ,问题解决。

简单实现:

1.接口调用方和接口提供方约定好统一的参数加密算法。

2.接口调用方在调用时把加密后的signature放在参数中去请求接口。

3.判断时间戳有效期。

4.将参数用约定号的加密算法进行加密,与参数中的signature进行比较,一致则调用接口。

08.如何保证API接口的安全性问题01

1.互联网Api接口到底如何保证安全性问题?

2.代码落地实战防御XSS、CSRF攻击

3.代码落地如何防御接口数据被黑客抓包篡改?

4.接口数据加密对称还是非对称加密好

XSS攻击通常指的是通过利用 网页 开发时留下的漏洞,通过巧妙的方法注入恶意指令代码到网页,使用户加载并执行攻击者恶意制造的网页程序。这些恶意网页程序通常是JavaScript,但实际上也可以包括 Java 、 VBScript 、 ActiveX 、 Flash 或者甚至是普通的HTML。攻击成功后,攻击者可能得到包括但不限于更高的权限(如执行一些操作)、私密网页内容、会话和cookie等各种内容。 [1]

脚本攻击:利用JavaScript 注入 到后台数据库中,在通过展示数据加载该脚本 该脚本中(

1.使用js获取cookie信息(jwt)

2.将该jwt数据 上传黑客服务器(ajax)

获取jwt---用户会话信息 让后模拟请求形式使用该jwt登录。

xss攻击典型网站:论坛、评论区

前端传递 js 脚本到服务器端

后端接口将该脚本存放数据库中

前端html

将用户前端所提交的参数进行过滤。

html 大于 小于号

该方式的缺陷:每个参数都需要像这样写 代码非常冗余

接口接受参数 ?传递参数形式---

传递参数都是json数据形式

spring mvc 接受 json数据提供 api回调

1.可以使用第三方抓包工具,对请求前后实现代理,可以修改参数请求内容和参数响应内容,抓包工具http调试工具

2.Fiddler4下载地址:

使用Fiddler4篡改请求之前:

使用MD5可以直接验证签名参数 MD5 属于单向加密,只能够暴力破解。

MD5应用场景 在nacos分布式配置中心中,使用MD5 比对文件内容是否发生改变

HasherPro比对文件内容是否发生改变。

MD5在线暴力破解地址:

String userName= "123456" ;

System. out .println( DigestUtils. md5Hex (userName));

黑客如何破解?自己需要根据参数内容 生成签名

如果只是改了参数内容---没有用的 所以我们需要该签名

{"password":"123456","phoneNumber":"phoneNumber","channel":"安卓","equipment":""}

{sign=325ab041d4889825a46d1e1e802ab5de, timestamp=1652537015771}

发现api接口个人信息泄露怎么处理

可以使用非对称加密、MD5 摘要以及令牌机制进行预防和阻击。使用Eolinker Api 测试工具对API接口信息进行加密,使得接口调用更加安全放心。

开放 API 平台生成公钥和私钥,并将公钥对外公布,提供给需要对接 API 的人员。对接 API 的人员将用户的数据使用公钥进行加密传输,即使有黑客使用抓包工具截取到了报文,但是由于解密用户数据只能使用 API 平台自己拥有的私钥才能解密,所以即使报文数据泄露,由于没有钥匙解开传输的信息,黑客获得了报文也无可奈何,非对称加密解决了用户传输用户名、密码等敏感信息泄露的问题。

RSA 与 HTTPS 的对比

如果条件允许,建议开放 API 接口都使用 HTTPS 协议传输数据。使用 HTTPS 传输相较于 RSA 加密更安全。HTTPS顾名思义,即安全的 HTTP,HTTPS 的主要作用是确认双方的身份和建立安全通道,保证传输数据的安全。

HTTPS 既用到了非对称加密,也用到了对称加密。相较于 RSA 加密,RSA 加密实现的,HTTPS 都能实现。但是 HTTPS 存在维护成本高、服务器开销大、需要购买证书、性能相对低的问题,所以出于成本的考虑不能使用 HTTPS,使用 RSA 加密算法是最优的选择。使用Eolinker API接口测试工具选择HTTPS方式进行接口测试。如图2

令牌鉴权

令牌可以理解为通行证,开放 API 接口暴露在公网之后就相当于一个敞开大门一样,所有人都可以随意进出,对于豪宅内的财产而言,这是很不安全的。

这时就需要一个保安查看进出人员的通行证,只有获得通行许可的人员可以进出,没有通行证的人员一律会被拦在大门外,不得进入。

同样对于开放 API 接口而言,如果没有令牌机制,所有人都可以通过接口获取数据,造成平台数据流失,给公司和客户造成不可估量的损失。所以使用令牌进行鉴权是非常有必要的。

开放 API 调用方需要在每一次接口调用中都携带令牌,服务器则在过滤器中进行令牌的校验,包含校验令牌是否存在、令牌是否已经过期等。如果令牌在 REDIS 缓存服务器中不存在,或者令牌已过期,则接口服务器直接返回异常信息,由接口调用方进行捕获,强制客户重新登录获取新的令牌,再进行后续操作。