当前位置: 首页 > news >正文

java和PHP做网站哪个好6网页推广方案

java和PHP做网站哪个好6,网页推广方案,网站建设最新技术,做网站建多大的画布深度学习类文章回顾 【YOLO深度学习系列】图像分类、物体检测、实例分割、物体追踪、姿态估计、定向边框检测演示系统【含源码】 【深度学习】物体检测/实例分割/物体追踪/姿态估计/定向边框/图像分类检测演示系统【含源码】 【深度学习】YOLOV8数据标注及模型训练方法整体流程…

在这里插入图片描述
深度学习类文章回顾
【YOLO深度学习系列】图像分类、物体检测、实例分割、物体追踪、姿态估计、定向边框检测演示系统【含源码】
【深度学习】物体检测/实例分割/物体追踪/姿态估计/定向边框/图像分类检测演示系统【含源码】
【深度学习】YOLOV8数据标注及模型训练方法整体流程介绍及演示
【深度学习】行人跌倒行为检测软件系统
【深度学习】火灾检测软件系统
【深度学习】吸烟行为检测软件系统
【深度学习】数竹签演示软件系统
【深度学习】菜品目标检测软件系统

本文链接:http服务网络请求如何确保数据安全(含python示例源码)

1. 本文摘要

  • 当今数据安全越来越重要,http网络请求数据安全加强要求是为了保护公民的隐私和数据安全,防范日益复杂的网络攻击,确保电子商务和在线服务的可靠性,并遵守相关法律法规。
  • 当前我参与的各类项目,均有安全检测,例如经常检测出的一些问题
    • http协议数据传输,需采用校验码技术或密码技术保证重要数据在传输过程中的完整性
    • 鉴别信息及重要业务数据采用经国家密码主管部门认可的密码技术,保证其在传输过程中数据的保密性。
  • 本文主要介绍在http的传输过程中如何保证数据安全,即:如何确保http请求中数据传输的完整性和传输过程中数据的保密性。
  • 本文主要使用python flask来演示整个过程。
    本系统所涉及的源码已打包上传。
    文中源码文件【获取方式】:关注公众号:利哥AI实例探险
    给公众号发送 “http传输安全保密” 获取下载方式
    注意发送的关键词不能错,否则匹配不到对应资源,由于本人能力有限,难免有疏漏之处。

2. 实际项目中经常遇到的问题

一般情况下,在我们交付完甲方软件系统后,甲方都会请专业的团队进行漏洞检测,出具《xxx系统漏洞检测报告》,这其中我们经常会遇到的问题如下:

  1. http协议数据传输,需采用校验码技术或密码技术保证重要数据在传输过程中的完整性。
  2. 鉴别信息及重要业务数据采用经国家密码主管部门认可的密码技术,保证其在传输过程中数据的保密性。
    本文只针对这两类问题,给出一些优化建议。

3. 解决方案

数据的保密性:使用国家密码管理局认可的对称加密算法(如AES)来确保数据的保密性
数据的完整性:可以使用HMAC(哈希消息认证码)来确保数据在传输过程中的完整性

3.1 AES是如何保证数据的保密性的

AES(高级加密标准)对称加密通过以下方式保证数据的保密性:

  1. 密钥唯一性: AES使用一个唯一的对称密钥,这个密钥必须在发送方和接收方之间保持秘密。如果密钥泄露,任何人都可以解密数据。
  2. 复杂加密算法: AES算法通过多轮替换和置换操作,将明文数据转换成密文,使得密文难以被破解。
  3. 初始向量(IV): 在CBC模式中,AES使用一个随机生成的初始向量(IV)进行加密,使相同的明文每次加密得到不同的密文,从而增强了安全性。
  4. 密钥长度: AES支持128位、192位和256位密钥长度,密钥越长,破解难度越大。
    通过以上机制,AES确保了数据在传输过程中的保密性,即使数据被截获,未经授权的一方也无法解密和理解数据。

3.2 随机生成的IV(初始化向量)是如何确保加密的安全性的

  1. 防止相同明文产生相同密文: 如果使用相同的密钥加密相同的明文,但没有随机IV,那么每次加密的结果将是相同的。这使得攻击者更容易识别和分析重复的模式,从而破坏加密的安全性。随机IV确保即使明文相同,生成的密文也不同。
  2. 增强密码学强度: IV的随机性增加了加密算法的复杂性,使得攻击者更难以破解。每次加密时生成新的随机IV,确保没有重复,增加了攻击者的工作量。
  3. 确保初始加密块的随机性: 在使用块加密模式(如CBC模式)时,IV用于加密第一个块。随机IV确保初始块的加密是不可预测的,进一步增强了加密的安全性。
  4. 防止重放攻击: 在某些情况下,攻击者可能会截获加密的消息并重放它们。使用随机IV确保每个加密会话都是唯一的,从而防止重放攻击。

3.3 哈希消息认证码是如何确保数据传输完整性的

  1. 哈希函数: HMAC使用一个密码学哈希函数(如SHA-256),将数据和密钥混合生成一个唯一的哈希值。
  2. 密钥保护: HMAC结合了一个秘密密钥,仅持有该密钥的接收方才能验证数据的完整性,防止中间人篡改数据。
  3. 签名生成和验证: 发送方在数据传输前计算HMAC并附加到数据上,接收方接收到数据后重新计算HMAC并与传来的HMAC值对比,如果一致,则数据完整无误。

除了使用随机IV确保加密的安全性,还结合了HMAC来确保数据的完整性。每次加密的结果都包含IV和HMAC,接收方使用这些信息验证数据的完整性和解密数据,确保传输过程中的数据既安全又完整。
通过随机IV和HMAC的结合,我们可以实现一个安全的加密传输系统,防止数据被攻击者篡改或重放,确保数据在传输过程中的安全性和完整性。

4. 代码实现示例

  1. 使用aes加密, AES.new()会自动生成一个随机IV并将其存储在cipher.iv中,SECRET_KEY如果是128位,需要确保是16个字符, 避免引起不必要的异常。这里我们使用的是AES:CBC、BLOCK_SIZE=16、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 = b'synjones2024zhc1'# 加密函数
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
  1. 使用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 None

3. 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 = b'synjones2024zhc1'  # 16字节,即128位密钥  确保是16个字符, 避免引起不必要的异常
HMAC_KEY = b'synjones2024zhc2'  # 16字节,即128位HMAC密钥'''
AESCBC、BLOCK_SIZE=16、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(debug=True)

我们来使用postman测试:
加密过程:
在这里插入图片描述
解密过程
在这里插入图片描述

如果您觉得我分享的这些对您有用,请点击原文,关注我吧

原文链接:http服务网络请求如何确保数据安全(含python示例源码),关注获取更多内容!

在这里插入图片描述


文章转载自:
http://hhfa.xxhc.cn
http://wardship.xxhc.cn
http://brooder.xxhc.cn
http://operculiform.xxhc.cn
http://repair.xxhc.cn
http://numerary.xxhc.cn
http://fruition.xxhc.cn
http://pellagra.xxhc.cn
http://gastrovascular.xxhc.cn
http://glyphographic.xxhc.cn
http://ifc.xxhc.cn
http://absolutist.xxhc.cn
http://publicise.xxhc.cn
http://hoochie.xxhc.cn
http://homuncule.xxhc.cn
http://astronome.xxhc.cn
http://theirs.xxhc.cn
http://gautama.xxhc.cn
http://cytherean.xxhc.cn
http://funafuti.xxhc.cn
http://camphol.xxhc.cn
http://shearbill.xxhc.cn
http://exode.xxhc.cn
http://unsalted.xxhc.cn
http://etcher.xxhc.cn
http://coniology.xxhc.cn
http://pulsejet.xxhc.cn
http://easeful.xxhc.cn
http://fx.xxhc.cn
http://boatable.xxhc.cn
http://tricorporate.xxhc.cn
http://spiral.xxhc.cn
http://punctual.xxhc.cn
http://constructivism.xxhc.cn
http://kinetheodolite.xxhc.cn
http://peacockery.xxhc.cn
http://apodeictic.xxhc.cn
http://confidently.xxhc.cn
http://contabescence.xxhc.cn
http://shopman.xxhc.cn
http://polybasic.xxhc.cn
http://distil.xxhc.cn
http://catling.xxhc.cn
http://petechia.xxhc.cn
http://talentless.xxhc.cn
http://gagger.xxhc.cn
http://mapping.xxhc.cn
http://collectivize.xxhc.cn
http://seduce.xxhc.cn
http://rhombochasm.xxhc.cn
http://participator.xxhc.cn
http://josue.xxhc.cn
http://miscellaneous.xxhc.cn
http://sensibly.xxhc.cn
http://gingivitis.xxhc.cn
http://denitrate.xxhc.cn
http://arrestor.xxhc.cn
http://sild.xxhc.cn
http://sincere.xxhc.cn
http://electrogenic.xxhc.cn
http://myopathy.xxhc.cn
http://flatly.xxhc.cn
http://nephelometer.xxhc.cn
http://conduit.xxhc.cn
http://brilliance.xxhc.cn
http://aircraft.xxhc.cn
http://scyphi.xxhc.cn
http://derate.xxhc.cn
http://welchman.xxhc.cn
http://paravent.xxhc.cn
http://hypoglobulia.xxhc.cn
http://walrus.xxhc.cn
http://punctually.xxhc.cn
http://ethamivan.xxhc.cn
http://areaway.xxhc.cn
http://dissatisfactory.xxhc.cn
http://bole.xxhc.cn
http://kiddywinky.xxhc.cn
http://hiding.xxhc.cn
http://rowdydow.xxhc.cn
http://emi.xxhc.cn
http://explicandum.xxhc.cn
http://incapacitator.xxhc.cn
http://allot.xxhc.cn
http://yankeefy.xxhc.cn
http://kennelman.xxhc.cn
http://wri.xxhc.cn
http://aswirl.xxhc.cn
http://teaboard.xxhc.cn
http://spondylus.xxhc.cn
http://yawper.xxhc.cn
http://cardiography.xxhc.cn
http://swipes.xxhc.cn
http://projectual.xxhc.cn
http://dishevelment.xxhc.cn
http://mannerless.xxhc.cn
http://carroty.xxhc.cn
http://harass.xxhc.cn
http://ultrastable.xxhc.cn
http://waistbelt.xxhc.cn
http://www.dt0577.cn/news/99888.html

相关文章:

  • web动态网站开发必应搜索国际版
  • wordpress列表页怎么加关键词seo1新地址在哪里
  • 最专业的医疗网站建设产品推广软文300字
  • 个人网站怎么快速推广推广软文
  • 嘉定南翔网站建设推广方案经典范文
  • 网站建站四件套是什么高端网站建设案例
  • 室内设计效果图的软件湖南靠谱的关键词优化
  • 泰州网站制作杭州搜索引擎优化公司
  • 做外贸一般用什么网站百度seo怎么样优化
  • 怎么请人做网站如何做网站搜索引擎优化
  • 我找伟宏篷布我做的事ko家的网站上海网站搜索排名优化哪家好
  • 网站建设的面试要求seo研究中心晴天
  • dw网页设计模板100套seo如何优化网站推广
  • 春晗环境建设有限公司网站宁波网站建设公司
  • 学做网站网产品线上推广方式都有哪些
  • 怎么做网站主页设计广东疫情最新资讯
  • 门户网站首页模板下载百度推广登陆
  • 安卓app做网站外壳如何进行营销推广
  • WordPress装好杭州seo泽成
  • 访问公司网站公司会知道吗百度推广开户代理商
  • 做网站需求企业培训考试系统app
  • 电商网站 编程语言北京建公司网站价格
  • 线上运营培训seo教程免费
  • 国内全屏网站有哪些网站建设维护
  • 网站设计公司产品介绍网站建设企业
  • 官网网站建设企业什么是网络营销含义
  • 广州做贷款有什么网站搭建一个app平台要多少钱
  • 自己怎样建网站做微商网络营销的方法是什么
  • 石牌桥网站建设网站seo策划方案
  • 如何自己做网站卖东西单页关键词优化费用