AES 和 MD5

当涉及到数据安全时,常用的加密算法包括 AES 和 MD5。以下是对它们的简要介绍:

  1. AES(Advanced Encryption Standard):AES 是一种对称加密算法,被广泛应用于保护数据的传输和存储安全。AES 加密使用相同的密钥进行加密和解密操作,密钥长度可以是 128 比特、192 比特或 256 比特。加密过程中,原始数据以块的方式进行处理,并通过一系列轮数的替换和置换操作来加密数据。AES 加密算法被认为是一种安全可靠的加密标准。

  2. MD5(Message-Digest Algorithm 5):MD5 是一种哈希函数,用于将任意长度的数据转换成固定长度的哈希值(通常是 128 比特)。MD5 算法生成的哈希值通常用于校验数据完整性,但由于其存在碰撞攻击的漏洞,不再被推荐用于安全性要求较高的场景。MD5 哈希算法主要用于快速生成数据的校验和,而不适合作为单独的加密算法使用,MD5加密也是不可逆的。

在使用这些算法时,需要注意以下几点:

  • 对于密码等敏感数据的存储,建议使用加盐哈希算法(如 bcrypt、PBKDF2)来加密密码,而不是直接使用 MD5。
  • 在使用 AES 加密时,要确保密钥的安全性,避免密钥泄露导致数据被解密。
  • 避免将加密密钥硬编码在代码中,应该采取安全的方式来管理和存储密钥。

总的来说,AES 适用于保护数据的传输和存储安全,而 MD5 更适合用于数据完整性校验等场景。在实际应用中,根据具体需求选择合适的加密算法,并结合其他安全措施来确保数据的安全性。

下面来说说这两个初步实现

  1. AES的使用
  • 在网页中引入一个名为aes.js的 JavaScript 文件
 <script src="${pageContext.request.contextPath}/js/aes.js"></script>
  • 使用aes加密密码 提交给到后端
user.password=$.uencrypt($("#password").val());
  • 后端来使用aes解密 然后验证就可以了
 String userPassword = Aes.aesDecrypt(user.getPassword());
  1. MD5加密
  • 通过引入 Spring Framework 提供的 DigestUtils 工具类,调用其中的 md5DigestAsHex
    方法对字符串"123"进行 MD5 加密
package www.com.sina1.test;import org.springframework.util.DigestUtils;public class MyTestMd5 {public static void main(String[] args) {/*获取加密后的密码值*/String s = DigestUtils.md5DigestAsHex("123".getBytes());System.out.println(s);}
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/702318.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

记录realsense包编译出错的问题

我是ros1...但是下载的包好像适用于ros2 合适的下载地址&#xff1a; ROS1 打开图中所选地址 https://github.com/IntelRealSense/realsense-ros/blob/ros1-legacy/README.md#installation-instructions 版本选择ros1 下载到对应位置即可

牛客周赛 Round 34 解题报告 | 珂学家 | 构造思维 + 置换环

前言 整体评价 好绝望的牛客周赛&#xff0c;彻底暴露了CF菜菜的本质&#xff0c;F题没思路&#xff0c;G题用置换环骗了50%, 这大概是唯一的亮点了。 A. 小红的字符串生成 思路: 枚举 a,b两字符在相等情况下比较特殊 a, b input().split() if a b:print (2)print (a)pri…

【监控】grafana图表使用快速上手

目录 1.前言 2.连接 3.图表 4.job和path 5.总结 1.前言 上一篇文章中&#xff0c;我们使用spring actuatorPrometheusgrafana实现了对一个spring boot应用的可视化监控。 【监控】Spring BootPrometheusGrafana实现可视化监控-CSDN博客 其中对grafana只是打开了一下&am…

【数据结构与算法】(22)高级数据结构与算法设计之 Divide and Conquer 分治法 代码示例与详细讲解

目录 4.4 Divide and Conquer1) 概述二分查找快速排序归并排序合并K个排序链表 - LeetCode 23对比动态规划 2) 快速选择算法数组中第k个最大元素-Leetcode 215数组中位数 3) 快速幂-Leetcode 504) 平方根整数部分-Leetcode 695) 至少k个重复字符的最长子串-Leetcode 395 4.4 Di…

云原生之API网关Traefik

1. 前言 说到web服务的开源网关&#xff0c;我首先想到的是Nginx&#xff0c;最早使用的就是它&#xff0c;现在都还在使用它。系统上线了Docker Swarm集群之后&#xff0c;不继续使用Nginx直接做Docker服务的网关&#xff0c;是因为Nginx毕竟比Docker Swarm出现的早&#xff0…

简单实现文字滚动效果-CSS版本

先看看效果 话不多说直接上代码 <template><div class"main"><div class"scroll-region"><div class"swiper-scroll-content"><span class"list-btn" v-for"(item, index) in overviewList" :…

【基于Ubuntu20.04的Autoware.universe安装过程】方案二:双系统 | 详细记录 | 全过程图文 by.Akaxi

目录 一、Autoware.universe背景 Part-1&#xff1a;安装双系统教程 二、查看Windows引导方式 三、制作安装盘 四、设置电脑配置 1.关闭bitlocker 2.压缩硬盘分区 3.关闭Secure Boot 4.关闭intel RST 5.BIOS设置U盘引导 五、安装Ubuntu20.04 1.ventoy引导 2.安装配…

07 Redis之持久化(RDB(Redis DataBase) + 写时复制 + AOF(Append Only File)+混合持久化)

4 Redis持久化 Redis 是一个内存数据库&#xff0c;然而内存中的数据是不持久的&#xff0c;若主机宕机或 Redis 关机重启&#xff0c;则内存中的数据全部丢失。 当然&#xff0c;这是不允许的。Redis 具有持久化功能&#xff0c;其会按照设置以快照或操作日志的形式将数据持…

双重检查锁定与延迟初始化

双重检验锁&#xff1a;多线程下的单例模式。 懒加载模式&#xff1a;延迟初始化。

unity学习(39)——创建(create)角色脚本(panel)——静态(static)

1.发现一个非常实用的功能&#xff0c;点击unity中console的输出项&#xff0c;可以直接跳转到vs的代码页&#xff01; 2.static类&#xff08;变量&#xff09;有三个特点&#xff1a; &#xff08;1&#xff09;独一份&#xff08;2&#xff09;无法实例化。&#xff08;3&…

如何做到三天内完成智能直流伺服电机系统开发?

适应EtherCAT/CANopen协议三相伺服电机直流伺服电机直线伺服音圈电机 如何开发高性能直流伺服电机驱动控制器&#xff1f; 需要熟悉高性能单片机&#xff08;至少是ARM或DSP水平的&#xff09;&#xff0c;需要掌握空间磁场矢量控制FOC&#xff0c;需要掌握运动轨迹算法……此…

【03】逆序数组

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 目录 一、逆序函数是什么&#xff1f; 二、逆序函数原码 1.直接逆序 2.创建临时数组逆序 三、结言 &#x1f4a5;一、逆序函数是什么&#xff1f; 示例&#xff1a;输入1 4 …

【MySQL面试复习】在MySQL中,如何定位慢查询?

系列文章目录 系列文章目录什么情况下需要定位慢查询&#xff1f;慢查询的一般表现形式是什么&#xff1f;如何定位慢查询&#xff1f; 什么情况下需要定位慢查询&#xff1f; 页面加载过慢、接口压测响应时间过长&#xff08;比如超过1s&#xff09; 慢查询的一般表现形式是什…

【MySQL面试复习】什么是聚簇索引(聚集索引)和非聚簇索引(二级索引)/什么是回表?

系列文章目录 在MySQL中&#xff0c;如何定位慢查询&#xff1f; 发现了某个SQL语句执行很慢&#xff0c;如何进行分析&#xff1f; 了解过索引吗&#xff1f;(索引的底层原理)/B 树和B树的区别是什么&#xff1f; 系列文章目录什么是聚簇索引&#xff08;聚集索引&#xff09…

Java架构师之路前言、确定学习方案

Java架构师之路前言、确定学习方案-CSDN博客 ​​Java架构师之路一、Java基础知识&#xff1a;Java语言特性、集合框架、IO流、多线程、反射、注解等基础知识。-CSDN博客 Java架构师之路二、数据库&#xff1a;SQL语言、关系型数据库、非关系型数据库、数据一致性、事务管理等。…

MODBUS-RTU协议

一、通信规范 1.1物理接口 BMS做从机默认地址为1&#xff0c;默认波特率19200、数据位8位、无奇偶校验、停止位1。 1.2通信数据格式 Modbus串行线路的协议是一个主从站协议。同一时间只有一个主节点连接到总线上&#xff0c;和一个或几个从站节点也连接到相同的串行总线。一…

SpringBootRest服务调用

目录 RestTemplate 依赖配置 自定义RestTemplate webCilent 依赖配置 自定义webCilent springboot中有两种方式实现Rest远程服务调用&#xff0c;分别是RestTemplate与webCilent。下面分别介绍一下这两种方式。 RestTemplate 依赖配置 RestTemplate是Spring Framework提供的…

蓝桥杯14届计算思维国赛U8组包含真题和答案

十四届蓝桥杯国赛考试计算思维 U8 组 答案在底部 第一题 以下选项中,( )是由美国计算机协会设立,对在计算机领域内作出重要贡献的个人授予的奖项 。A.图灵奖 C.菲尔兹奖 B.诺贝尔奖 D.普利策奖 第二题 希希去吃寿司。餐台上摆出了许多食物,可供大家自选。如下图所示。 …

在 where子句中使用子查询(二)

目录 ANY ANY &#xff1a;功能上与 IN 是没有任何区别的 >ANY &#xff1a;比子查询返回的最小值要大 ALL >AL &#xff1a;比子查询返回的最大值要大 EXISTS() 判断 NOT EXISTS Oracle从入门到总裁:https://blog.csdn.net/weixin_67859959/article/details/135209…

设计模式学习笔记 - 面向对象 - 7.为什么要多用组合少用继承?如何决定该用组合还是继承?

前言 在面向对象编程中&#xff0c;有一条非常经典的设计原则&#xff1a;组合优于继承&#xff0c;多用组合少用继承。 为什么不推荐使用继承&#xff1f; 组合比继承有哪些优势&#xff1f; 如何判断该用组合还是继承&#xff1f; 为什么不推荐使用继承&#xff1f; 继承…