首页 > 其他分享 >HMAC SHA256对称加密

HMAC SHA256对称加密

时间:2024-07-04 19:19:44浏览次数:15  
标签:加密 密钥 对称 SHA256 data HMAC

HMAC SHA256 是一种对称加密算法。以下是关于 HMAC SHA256 以及对称加密和非对称加密的详细解释:

HMAC SHA256

HMAC(Hash-based Message Authentication Code) 是一种基于哈希函数的消息认证码,它通过结合一个秘密密钥和一个哈希算法来生成消息摘要,从而验证消息的完整性和真实性。HMAC SHA256 使用 SHA256 哈希函数来生成 HMAC。

  • 对称加密:对称加密算法使用相同的密钥进行加密和解密。在 HMAC 中,生成和验证消息认证码时使用的是同一个密钥。
  • 应用:HMAC SHA256 广泛用于数据完整性验证和消息认证,比如在 JWT(JSON Web Token)的签名中。

对称加密与非对称加密

对称加密

  1. 定义
    • 使用同一个密钥进行加密和解密的加密方式。
  2. 特性
    • 加密和解密速度快,适用于大数据量的加密。
    • 密钥管理是一个难题,因为所有参与通信的各方都必须安全地共享和存储密钥。
  3. 常见算法
    • AES(Advanced Encryption Standard)
    • DES(Data Encryption Standard)
    • 3DES(Triple DES)
    • HMAC(Hash-based Message Authentication Code)

非对称加密

  1. 定义
    • 使用一对相关联的密钥进行加密和解密的加密方式,其中一个密钥用于加密,另一个密钥用于解密。密钥对由公钥和私钥组成。
  2. 特性
    • 公钥可以公开分发,而私钥必须保密。发送方使用接收方的公钥加密消息,只有接收方的私钥能解密。
    • 加密和解密速度较慢,适用于小数据量的加密或用于加密对称密钥。
  3. 常见算法
    • RSA(Rivest-Shamir-Adleman)
    • ECC(Elliptic Curve Cryptography)
    • DSA(Digital Signature Algorithm)

具体示例

HMAC SHA256 示例

以下是使用 Python 中的 hmac 模块来生成和验证 HMAC SHA256 签名的示例:

import hmac
import hashlib

# 秘钥
secret_key = b'secret'

# 消息
message = b'This is a secret message'

# 生成 HMAC SHA256
hmac_signature = hmac.new(secret_key, message, hashlib.sha256).hexdigest()

print(f'HMAC SHA256: {hmac_signature}')

对称加密示例(AES)

以下是使用 Python 中的 cryptography 模块来进行 AES 对称加密的示例:

from cryptography.hazmat.primitives.ciphers import Cipher, algorithms, modes
from cryptography.hazmat.primitives import padding
from cryptography.hazmat.backends import default_backend
import os

# 秘钥和 IV
key = os.urandom(32)  # 256-bit 密钥
iv = os.urandom(16)   # 128-bit 初始向量

# 加密器
cipher = Cipher(algorithms.AES(key), modes.CBC(iv), backend=default_backend())
encryptor = cipher.encryptor()

# 数据
data = b'This is a secret message'

# 填充数据
padder = padding.PKCS7(algorithms.AES.block_size).padder()
padded_data = padder.update(data) + padder.finalize()

# 加密
encrypted_data = encryptor.update(padded_data) + encryptor.finalize()

print(f'Encrypted data: {encrypted_data}')

# 解密器
decryptor = cipher.decryptor()

# 解密
decrypted_padded_data = decryptor.update(encrypted_data) + decryptor.finalize()

# 去除填充
unpadder = padding.PKCS7(algorithms.AES.block_size).unpadder()
decrypted_data = unpadder.update(decrypted_padded_data) + unpadder.finalize()

print(f'Decrypted data: {decrypted_data}')

结论

HMAC SHA256 是一种对称加密算法,用于生成和验证消息认证码,以确保数据的完整性和真实性。它使用相同的密钥进行消息的认证和验证。对称加密算法适合于高效的大数据加密,而非对称加密算法适用于小数据量的加密和密钥交换,具有不同的应用场景和特性。

标签:加密,密钥,对称,SHA256,data,HMAC
From: https://www.cnblogs.com/gongchengship/p/18284495

相关文章

  • CAD图纸加密软件哪个好用:八款顶尖CAD图纸加密软件大盘点!
     在工程设计领域,CAD图纸是设计师们的智慧结晶,承载着项目的核心技术和创新思路。然而,随着信息时代的到来,图纸的安全问题日益凸显。如何有效保护CAD图纸不被非法复制、篡改或泄露,成为了每个企业和设计师必须面对的重要课题。 今天为大家盘点八款顶尖CAD图纸加密软件,助您守......
  • SM4国产加密CBC算法快速预览与Framework4.5版本对接
       针对日常加密算法,大致分为对称加密,非对称加密,哈希函数(MD5),其中对称加密比较常见的,如AES、DES、3DES,对称加密算法是指加密和解密采用相同的密钥口,是可逆的,实习那会用的就是DES,网上很多现成的轮子。此外非对称加密算法,常用的如RSA算法、‌ECC算法、‌DSA等算法,非对称......
  • Springboot+Vue加密通信
    前言本文旨在给出Springboot+Vue框架下的加密通信具体实现,同时为照顾非行业内/初学读者,第一小节浅显的解释下加解密方式,老鸟直接跳过。1加解密方式常见的加解密方式大概分成对称加密、非对称加密与信息摘要算法三类。下面仅从使用角度简单介绍下加解密方式:1.1对称......
  • 企业做源代码加密/防泄密,需要如何选择产品?
    一:稳定性是选型最重要的标准    没有稳定不谈应用看过国内品牌繁多的加密软件后,很多人感觉加密软件没有太多技术含量。选型首先就问就问是不是BS架构呀、有没有桌面管控、能不能远程推送、能不能兼容LINUX等功能。我认为这些花哨的功能的确能让应用锦上添花,但忽视加密......
  • 解决 windows远程桌面报错“CredSSP加密数据库修正”
    在被远程的windows系统中执行以下步骤:win+r键-输入regedit回车找到路径HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System\CredSSP\Parameters2.1CredSSP\Parameters如果不存在,右键System文件夹,选择“新建-项”,输入CredSSP,再右键CredSSP,新......
  • MySQL存储安全(TDE加密、自动备份)
    MySQL存储安全设置透明数据加密TDE、自动备份数据等。 一、mysql启用tde透明加密 MySQL数据库存储加密有多种方式可供选择,主要分为两大类: 利用字段加密,在对数据库存储/读取时进行加密/解密操作,需要用户修改应用程序利用TDE透明加密客户端,实现数据库实例文件存储加密,用......
  • CAD图纸怎么加密?(五种简单的CAD图纸加密方法分享)
    在企业中,CAD图纸通常含有许多敏感且机密信息,对设计图纸的安全保护至关重要。为确保CAD图纸不被未经授权的人访问、复制或篡改,企业需要采用有效的加密措施。以下是一些常用的方法和工具,帮助企业对CAD图纸进行加密保护:加密软件https://www.gooxion.com/一、加密软件......
  • 2024年公司加密软件排行榜(企业加密软件推荐)
    在信息时代,企业数据安全至关重要,防止数据泄露和未授权访问是首要任务之一。以下是2024年备受好评的企业加密软件排行榜:固信加密软件https://www.gooxion.com/1.固信加密软件固信加密软件是新一代企业级加密解决方案,采用先进的加密技术,并提供全面的数据保护功......
  • 最新uniapp壹牛数藏/NFT数字艺术藏品/开源无加密
    最新uniapp壹牛数藏/NFT数字艺术藏品/开源无加密下载地址:https://www.662p.com/3088/29710相比之前的版本,这个版本新增了不少功能,也修复了一些地方。1.平台新增用户找回密码功能2.平台新增短信注册(实名制功能)3.平台新增主图后台添加功能4.平台修复相关问题,系统高效运行1、H5端与......
  • 网络安全&密码学—python中的各种加密算法
    网络安全&密码学—python中的各种加密算法一、简介数据加密是一种保护数据安全的技术,通过将数据(明文)转换为不易被未经授权的人理解的形式(密文),以防止数据泄露、篡改或滥用。加密后的数据(密文)可以通过解密过程恢复成原始数据(明文)。数据加密的核心是密码学,它是研究密码系统或通信安......