二级域名做网站好不好,win7主机做网站,黄陌陌网站怎么做,宣传商务型的网站深度学习类文章回顾 【YOLO深度学习系列】图像分类、物体检测、实例分割、物体追踪、姿态估计、定向边框检测演示系统【含源码】 【深度学习】物体检测/实例分割/物体追踪/姿态估计/定向边框/图像分类检测演示系统【含源码】 【深度学习】YOLOV8数据标注及模型训练方法整体流程… 深度学习类文章回顾 【YOLO深度学习系列】图像分类、物体检测、实例分割、物体追踪、姿态估计、定向边框检测演示系统【含源码】 【深度学习】物体检测/实例分割/物体追踪/姿态估计/定向边框/图像分类检测演示系统【含源码】 【深度学习】YOLOV8数据标注及模型训练方法整体流程介绍及演示 【深度学习】行人跌倒行为检测软件系统 【深度学习】火灾检测软件系统 【深度学习】吸烟行为检测软件系统 【深度学习】数竹签演示软件系统 【深度学习】菜品目标检测软件系统
本文链接http服务网络请求如何确保数据安全(含python示例源码)
1. 本文摘要
当今数据安全越来越重要http网络请求数据安全加强要求是为了保护公民的隐私和数据安全防范日益复杂的网络攻击确保电子商务和在线服务的可靠性并遵守相关法律法规。当前我参与的各类项目均有安全检测例如经常检测出的一些问题 http协议数据传输需采用校验码技术或密码技术保证重要数据在传输过程中的完整性鉴别信息及重要业务数据采用经国家密码主管部门认可的密码技术保证其在传输过程中数据的保密性。 本文主要介绍在http的传输过程中如何保证数据安全即如何确保http请求中数据传输的完整性和传输过程中数据的保密性。本文主要使用python flask来演示整个过程。 本系统所涉及的源码已打包上传。 文中源码文件【获取方式】关注公众号利哥AI实例探险 给公众号发送 “http传输安全保密” 获取下载方式 注意发送的关键词不能错否则匹配不到对应资源由于本人能力有限难免有疏漏之处。
2. 实际项目中经常遇到的问题
一般情况下在我们交付完甲方软件系统后甲方都会请专业的团队进行漏洞检测出具《xxx系统漏洞检测报告》这其中我们经常会遇到的问题如下
http协议数据传输需采用校验码技术或密码技术保证重要数据在传输过程中的完整性。鉴别信息及重要业务数据采用经国家密码主管部门认可的密码技术保证其在传输过程中数据的保密性。 本文只针对这两类问题给出一些优化建议。
3. 解决方案 数据的保密性使用国家密码管理局认可的对称加密算法如AES来确保数据的保密性 数据的完整性可以使用HMAC哈希消息认证码来确保数据在传输过程中的完整性 3.1 AES是如何保证数据的保密性的
AES高级加密标准对称加密通过以下方式保证数据的保密性
密钥唯一性 AES使用一个唯一的对称密钥这个密钥必须在发送方和接收方之间保持秘密。如果密钥泄露任何人都可以解密数据。复杂加密算法 AES算法通过多轮替换和置换操作将明文数据转换成密文使得密文难以被破解。初始向量IV 在CBC模式中AES使用一个随机生成的初始向量IV进行加密使相同的明文每次加密得到不同的密文从而增强了安全性。密钥长度 AES支持128位、192位和256位密钥长度密钥越长破解难度越大。 通过以上机制AES确保了数据在传输过程中的保密性即使数据被截获未经授权的一方也无法解密和理解数据。
3.2 随机生成的IV(初始化向量)是如何确保加密的安全性的
防止相同明文产生相同密文 如果使用相同的密钥加密相同的明文但没有随机IV那么每次加密的结果将是相同的。这使得攻击者更容易识别和分析重复的模式从而破坏加密的安全性。随机IV确保即使明文相同生成的密文也不同。增强密码学强度 IV的随机性增加了加密算法的复杂性使得攻击者更难以破解。每次加密时生成新的随机IV确保没有重复增加了攻击者的工作量。确保初始加密块的随机性 在使用块加密模式如CBC模式时IV用于加密第一个块。随机IV确保初始块的加密是不可预测的进一步增强了加密的安全性。防止重放攻击 在某些情况下攻击者可能会截获加密的消息并重放它们。使用随机IV确保每个加密会话都是唯一的从而防止重放攻击。
3.3 哈希消息认证码是如何确保数据传输完整性的
哈希函数 HMAC使用一个密码学哈希函数如SHA-256将数据和密钥混合生成一个唯一的哈希值。密钥保护 HMAC结合了一个秘密密钥仅持有该密钥的接收方才能验证数据的完整性防止中间人篡改数据。签名生成和验证 发送方在数据传输前计算HMAC并附加到数据上接收方接收到数据后重新计算HMAC并与传来的HMAC值对比如果一致则数据完整无误。
除了使用随机IV确保加密的安全性还结合了HMAC来确保数据的完整性。每次加密的结果都包含IV和HMAC接收方使用这些信息验证数据的完整性和解密数据确保传输过程中的数据既安全又完整。 通过随机IV和HMAC的结合我们可以实现一个安全的加密传输系统防止数据被攻击者篡改或重放确保数据在传输过程中的安全性和完整性。
4. 代码实现示例
使用aes加密 AES.new()会自动生成一个随机IV并将其存储在cipher.iv中SECRET_KEY如果是128位需要确保是16个字符, 避免引起不必要的异常。这里我们使用的是AESCBC、BLOCK_SIZE16、PKCS7填充
import hmac
import hashlib
from Crypto.Cipher import AES
from Crypto.Util.Padding import pad, unpad
import base64
import json
from typing import TupleSECRET_KEY bsynjones2024zhc1# 加密函数
def encrypt_data(data: str) - Tuple[str, str]:cipher AES.new(SECRET_KEY, AES.MODE_CBC) #ct_bytes cipher.encrypt(pad(data.encode(utf-8), AES.block_size)) # BLOCK_SIZE 16 # 128 bits、默认使用PKCS7填充iv base64.b64encode(cipher.iv).decode(utf-8)ct base64.b64encode(ct_bytes).decode(utf-8)# 加密后的密文和IV会被编码并传输return iv, ct使用aes解密
# 解密函数
def decrypt_data(iv: str, ct: str) - str:try:iv base64.b64decode(iv)ct base64.b64decode(ct)cipher AES.new(SECRET_KEY, AES.MODE_CBC, iv) # 使用CBC模式pt unpad(cipher.decrypt(ct), AES.block_size) # 使用PKCS7填充return pt.decode(utf-8)except (ValueError, KeyError):return None3. HMAC生成函数
def generate_hmac(data: str) - str:return hmac.new(HMAC_KEY, data.encode(utf-8), hashlib.sha256).hexdigest()接下来我们来设计整个流程
加密使用AES对称加密算法进行数据加密使用随机生成的IV(初始化向量)确保加密的安全性。解密解密时使用传递过来的IV和加密数据。HMAC使用HMAC-SHA256算法生成消息认证码确保数据在传输过程中的完整性。使用HMAC进行验证如果验证失败则返回错误。数据传输加密后的数据、IV和HMAC值通过JSON格式进行传输。
from flask import Flask, request, jsonify
import hmac
import hashlib
from Crypto.Cipher import AES
from Crypto.Util.Padding import pad, unpad
import base64
import json
from typing import Tupleapp Flask(__name__)# 共享密钥和HMAC密钥
SECRET_KEY bsynjones2024zhc1 # 16字节即128位密钥 确保是16个字符, 避免引起不必要的异常
HMAC_KEY bsynjones2024zhc2 # 16字节即128位HMAC密钥
AESCBC、BLOCK_SIZE16、PKCS7填充使用Crypto.Util.Padding中的pad和unpad函数进行PKCS7填充和去填充。这里使用块大小BLOCK_SIZE(16字节, 即128位)进行填充。# 加密函数
def encrypt_data(data: str) - Tuple[str, str]:cipher AES.new(SECRET_KEY, AES.MODE_CBC) # AES.new()会自动生成一个随机IV并将其存储在cipher.iv中ct_bytes cipher.encrypt(pad(data.encode(utf-8), AES.block_size)) # BLOCK_SIZE 16 # 128 bits、默认使用PKCS7填充iv base64.b64encode(cipher.iv).decode(utf-8)ct base64.b64encode(ct_bytes).decode(utf-8)# 加密后的密文和IV会被编码并传输return iv, ct# 解密函数
def decrypt_data(iv: str, ct: str) - str:try:iv base64.b64decode(iv)ct base64.b64decode(ct)cipher AES.new(SECRET_KEY, AES.MODE_CBC, iv) # 使用CBC模式pt unpad(cipher.decrypt(ct), AES.block_size) # 使用PKCS7填充return pt.decode(utf-8)except (ValueError, KeyError):return None# HMAC生成函数
def generate_hmac(data: str) - str:return hmac.new(HMAC_KEY, data.encode(utf-8), hashlib.sha256).hexdigest()app.route(/send, methods[POST])
def send_data():content request.jsondata_str json.dumps(content)print(-----------------send, data_str)# 加密数据iv, encrypted_data encrypt_data(data_str)# 生成HMAChmac_value generate_hmac(encrypted_data)response {iv: iv,data: encrypted_data,hmac: hmac_value}return jsonify(response)app.route(/receive, methods[POST])
def receive_data():content request.jsoniv content.get(iv)encrypted_data content.get(data)received_hmac content.get(hmac)# 验证HMACexpected_hmac generate_hmac(encrypted_data)if not hmac.compare_digest(expected_hmac, received_hmac):return jsonify({error: HMAC verification failed}), 400# 解密数据decrypted_data_str decrypt_data(iv, encrypted_data)if decrypted_data_str is None:return jsonify({error: Decryption failed}), 400# 将解密后的字符串反序列化为JSON对象decrypted_data json.loads(decrypted_data_str)return jsonify({data: decrypted_data})if __name__ __main__:app.run(debugTrue)
我们来使用postman测试 加密过程 解密过程
如果您觉得我分享的这些对您有用请点击原文关注我吧
原文链接http服务网络请求如何确保数据安全(含python示例源码)关注获取更多内容
文章转载自: http://www.morning.jxlnr.cn.gov.cn.jxlnr.cn http://www.morning.kphyl.cn.gov.cn.kphyl.cn http://www.morning.fwkpp.cn.gov.cn.fwkpp.cn http://www.morning.lqws.cn.gov.cn.lqws.cn http://www.morning.rttkl.cn.gov.cn.rttkl.cn http://www.morning.litao4.cn.gov.cn.litao4.cn http://www.morning.jfnbh.cn.gov.cn.jfnbh.cn http://www.morning.yxnkr.cn.gov.cn.yxnkr.cn http://www.morning.lrmts.cn.gov.cn.lrmts.cn http://www.morning.tbjtm.cn.gov.cn.tbjtm.cn http://www.morning.brhxd.cn.gov.cn.brhxd.cn http://www.morning.ylxgw.cn.gov.cn.ylxgw.cn http://www.morning.zpfr.cn.gov.cn.zpfr.cn http://www.morning.sbyhj.cn.gov.cn.sbyhj.cn http://www.morning.rxwnc.cn.gov.cn.rxwnc.cn http://www.morning.lmrcq.cn.gov.cn.lmrcq.cn http://www.morning.rkypb.cn.gov.cn.rkypb.cn http://www.morning.nqbcj.cn.gov.cn.nqbcj.cn http://www.morning.ljngm.cn.gov.cn.ljngm.cn http://www.morning.wncb.cn.gov.cn.wncb.cn http://www.morning.dmtwz.cn.gov.cn.dmtwz.cn http://www.morning.pqsys.cn.gov.cn.pqsys.cn http://www.morning.mrgby.cn.gov.cn.mrgby.cn http://www.morning.gwdnl.cn.gov.cn.gwdnl.cn http://www.morning.pybqq.cn.gov.cn.pybqq.cn http://www.morning.sjqml.cn.gov.cn.sjqml.cn http://www.morning.gjqgz.cn.gov.cn.gjqgz.cn http://www.morning.wklmj.cn.gov.cn.wklmj.cn http://www.morning.rfyff.cn.gov.cn.rfyff.cn http://www.morning.horihe.com.gov.cn.horihe.com http://www.morning.xxrwp.cn.gov.cn.xxrwp.cn http://www.morning.pbdnj.cn.gov.cn.pbdnj.cn http://www.morning.jwgmx.cn.gov.cn.jwgmx.cn http://www.morning.brwp.cn.gov.cn.brwp.cn http://www.morning.sjsks.cn.gov.cn.sjsks.cn http://www.morning.mmxnb.cn.gov.cn.mmxnb.cn http://www.morning.dhmll.cn.gov.cn.dhmll.cn http://www.morning.ydflc.cn.gov.cn.ydflc.cn http://www.morning.lwwnq.cn.gov.cn.lwwnq.cn http://www.morning.ftntr.cn.gov.cn.ftntr.cn http://www.morning.gsksm.cn.gov.cn.gsksm.cn http://www.morning.ptmgq.cn.gov.cn.ptmgq.cn http://www.morning.sdecsd.cn.gov.cn.sdecsd.cn http://www.morning.slkqd.cn.gov.cn.slkqd.cn http://www.morning.ttcmdsg.cn.gov.cn.ttcmdsg.cn http://www.morning.gqbks.cn.gov.cn.gqbks.cn http://www.morning.rnwt.cn.gov.cn.rnwt.cn http://www.morning.tkzrh.cn.gov.cn.tkzrh.cn http://www.morning.wpkr.cn.gov.cn.wpkr.cn http://www.morning.rcjyc.cn.gov.cn.rcjyc.cn http://www.morning.tbknh.cn.gov.cn.tbknh.cn http://www.morning.sqqds.cn.gov.cn.sqqds.cn http://www.morning.xqjh.cn.gov.cn.xqjh.cn http://www.morning.rymb.cn.gov.cn.rymb.cn http://www.morning.qcztm.cn.gov.cn.qcztm.cn http://www.morning.jgzmr.cn.gov.cn.jgzmr.cn http://www.morning.dwkfx.cn.gov.cn.dwkfx.cn http://www.morning.wpqwk.cn.gov.cn.wpqwk.cn http://www.morning.htjwz.cn.gov.cn.htjwz.cn http://www.morning.jrlgz.cn.gov.cn.jrlgz.cn http://www.morning.kndyz.cn.gov.cn.kndyz.cn http://www.morning.wdqhg.cn.gov.cn.wdqhg.cn http://www.morning.mbhdl.cn.gov.cn.mbhdl.cn http://www.morning.xwgbr.cn.gov.cn.xwgbr.cn http://www.morning.dpplr.cn.gov.cn.dpplr.cn http://www.morning.kbynw.cn.gov.cn.kbynw.cn http://www.morning.xsymm.cn.gov.cn.xsymm.cn http://www.morning.ityi666.cn.gov.cn.ityi666.cn http://www.morning.jrkzk.cn.gov.cn.jrkzk.cn http://www.morning.blqsr.cn.gov.cn.blqsr.cn http://www.morning.dtlqc.cn.gov.cn.dtlqc.cn http://www.morning.wypyl.cn.gov.cn.wypyl.cn http://www.morning.nrzbq.cn.gov.cn.nrzbq.cn http://www.morning.tbzcl.cn.gov.cn.tbzcl.cn http://www.morning.dcmnl.cn.gov.cn.dcmnl.cn http://www.morning.nzzws.cn.gov.cn.nzzws.cn http://www.morning.clbzy.cn.gov.cn.clbzy.cn http://www.morning.yqmmh.cn.gov.cn.yqmmh.cn http://www.morning.qsfys.cn.gov.cn.qsfys.cn http://www.morning.kqhlm.cn.gov.cn.kqhlm.cn