当前位置:网站首页 > C++编程 > 正文

消息认证码(MAC)(消息认证码(MAC))



在鸿蒙客户端对服务端发起HTTPS请求时,如果使用HttpRequest的request发起请求,那么就存在服务端数字证书的验证问题,你只有两个选择一个是使用系统的CA,一个是使用自己选定的CA,在上文鸿蒙网络编程系列26-HTTPS证书自选CA校验示例中,对此进行了介绍。但是,还有一些更常见的问题难以解决

  • 可不可以跳过对服务端数字证书的验证
  • 可不可以自定义验证规则,比如,只验证数字证书的公玥,忽略有效期,就是说失效了也可以继续用

如果你还是使用HttpRequest的话,答案是否定的。但是,鸿蒙开发者很贴心的推出了远场通信服务,可以使用rcp模块的方法发起请求,并且在请求时指定服务端证书的验证方式,关键点就在SecurityConfiguration接口上,该接口的remoteValidation属性支持远程服务器证书的四种验证模式:

  • 'system':使用系统CA,默认值
  • 'skip':跳过验证
  • CertificateAuthority:选定CA
  • ValidationCallback:自定义证书校验

Talk is cheap, show you the code!

本示例运行后的界面如下所示:

image.png

选择证书验证模式,在请求地址输入要访问的https网址,然后单击“请求”按钮,就可以在下面的日志区域显示请求结果。

下面详细介绍创建该应用的步骤。

步骤1:创建Empty Ability项目。

步骤2:在module.json5配置文件加上对权限的声明:

 
  

步骤3:在Index.ets文件里添加如下的代码:

 
  

步骤4:编译运行,可以使用模拟器或者真机。

步骤5:选择默认“系统CA”,输入请求网址(假设web服务端使用的是自签名证书),然后单击“请求”按钮,这时候会出现关于数字证书的错误信息,如图所示:

image.png

步骤6:选择“指定CA”类型,然后单击出现的“选择”按钮,可以在本机选择CA证书文件,然后单击“请求”按钮:

image.png

可以看到,得到了正确的请求结果。

步骤7:选择“跳过验证”类型,然后然后单击“请求”按钮:

image.png

也得到了正确的请求结果。

步骤8:选择“自定义验证”类型,然后然后单击“请求”按钮:

image.png

也得到了正确的请求结果。

关键点主要有两块,第一块是设置验证模式:

 
  

这个比较好理解,第二块是自定义证书验证的方法:

 
  

这里为简单起见,自定义规则是所有的验证都通过,读者可以根据自己的需要来修改,比如不验证证书的有效期。

(本文作者原创,除非明确授权禁止转载)

本文源码地址:

https://gitee.com/zl3624/harmonyos_network_samples/tree/master/code/rcp/RCPCertVerify

本系列源码地址:

https://gitee.com/zl3624/harmonyos_network_samples

到此这篇消息认证码(MAC)(消息认证码(MAC))的文章就介绍到这了,更多相关内容请继续浏览下面的相关推荐文章,希望大家都能在编程的领域有一番成就!

版权声明


相关文章:

  • plc定时器100ms定时范围(plc200定时器)2025-11-05 09:27:05
  • tcpdump pcap文件解析(pcap包解析)2025-11-05 09:27:05
  • xdc是什么缩写(xdcc是什么)2025-11-05 09:27:05
  • c++ 条件变量(c++ 条件变量使用)2025-11-05 09:27:05
  • sigmod会议 ccf(sigmod会议含金量)2025-11-05 09:27:05
  • msvcp140.dll丢失的解决方法 win10(msvcp140.dll丢失的解决方法 win11)2025-11-05 09:27:05
  • 进程控制块pcb不包括(进程控制块pcb主要包括哪些内容)2025-11-05 09:27:05
  • vconsole有什么用(vconsode)2025-11-05 09:27:05
  • git clone 版本号(git clone403)2025-11-05 09:27:05
  • msvcp140.dll丢失的解决方法(msvcp140.dll丢失的解决方法360)2025-11-05 09:27:05
  • 全屏图片