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

有没有找项目的网站wordpress实现图片全屏代码

有没有找项目的网站,wordpress实现图片全屏代码,广西住房和城乡建设厅官方网站,摄影设计素材本手册主要针对Java项目中的账号密码加密与验证进行详细的步骤讲解和代码示例。适用于开发登录认证、用户管理等功能的场景。文档包含工具类的创建、数据库配置、服务层和控制器层的集成等常见操作。 1. 常用加密操作 在实现安全的登录功能时#xff0c;密码加密与验证是不可…本手册主要针对Java项目中的账号密码加密与验证进行详细的步骤讲解和代码示例。适用于开发登录认证、用户管理等功能的场景。文档包含工具类的创建、数据库配置、服务层和控制器层的集成等常见操作。 1. 常用加密操作 在实现安全的登录功能时密码加密与验证是不可或缺的一部分。常用的加密流程如下 1.1 密码加密 在用户注册或修改密码时应该对密码进行加密。常用的加密方法有 MD5已不建议使用因为安全性不足。SHA-256推荐使用安全性较好。加盐为了增加安全性加密时应生成并使用一个随机的“盐值”。 加盐加密步骤 生成随机的盐值。将盐值与密码组合生成哈希。将哈希值和盐值存储到数据库中。 1.2 盐值生成 为了确保每个用户的密码加密结果唯一使用随机盐值非常重要。通过 SecureRandom 类可以生成高质量的随机盐值。 public static String generateSalt() {byte[] salt new byte[16];new SecureRandom().nextBytes(salt);return Base64.getEncoder().encodeToString(salt); }1.3 加密密码的存储与验证 存储时不直接保存用户密码而是保存加密后的哈希值和对应的盐值。在用户登录时使用存储的盐值对用户输入的密码进行加密然后比对哈希值。 2. 系统结构与配置 2.1 项目结构概述 假设项目使用Spring Boot框架lombok项目的基本结构如下 ├─src │ ├─main │ │ ├─java │ │ │ └─com │ │ │ └─company │ │ │ └─erp │ │ │ ├─config │ │ │ ├─constant │ │ │ ├─dto │ │ │ ├─entity │ │ │ ├─mapper │ │ │ ├─service │ │ │ ├─util │ │ │ └─web2.2 数据库设计 为实现密码加密功能需要修改数据库表结构保存哈希后的密码和对应的盐值。 示例数据库表结构如下 CREATE TABLE emp (id INT AUTO_INCREMENT PRIMARY KEY,username VARCHAR(255) NOT NULL UNIQUE,password_hash VARCHAR(255) NOT NULL,salt VARCHAR(255) NOT NULL );3. 代码实现 3.1 工具类 PasswordUtils 加密和验证密码的工具类包含生成盐值、加密密码和验证密码的方法。 public class PasswordUtils {// 生成随机盐值public static String generateSalt() {byte[] salt new byte[16];new SecureRandom().nextBytes(salt);return Base64.getEncoder().encodeToString(salt);}// 使用盐值对密码进行哈希处理public static String hashPassword(String password, String salt) throws NoSuchAlgorithmException {MessageDigest md MessageDigest.getInstance(SHA-256);md.update(Base64.getDecoder().decode(salt));byte[] hashedPassword md.digest(password.getBytes());return Base64.getEncoder().encodeToString(hashedPassword);}// 验证密码是否匹配public static boolean verifyPassword(String password, String salt, String storedHash) throws NoSuchAlgorithmException {String hash hashPassword(password, salt);return hash.equals(storedHash);} }3.2 实体类 Emp 实体类代表数据库中的用户信息需要包含加密后的密码和盐值。 Data public class Emp {private Integer id;private String username;private String passwordHash; // 存储加密后的密码private String salt; // 存储盐值 }3.3 数据访问层 EmpMapper 通过 EmpMapper 进行数据库操作。它负责将用户信息插入数据库以及根据用户名查找用户信息。 public interface EmpMapper {Insert(INSERT INTO emp (username, password_hash, salt) VALUES (#{username}, #{passwordHash}, #{salt}))void insert(Emp emp);Select(SELECT * FROM emp WHERE username #{username})Emp findByUsername(String username); }3.4 服务层 EmpService 和 EmpServiceImpl 服务层负责处理用户注册和登录的业务逻辑使用 PasswordUtils 工具类对密码进行加密和验证。 Service public class EmpServiceImpl implements EmpService {Autowiredprivate EmpMapper empMapper;Overridepublic void registerUser(String username, String password) {String salt PasswordUtils.generateSalt();try {String hashedPassword PasswordUtils.hashPassword(password, salt);Emp emp new Emp();emp.setUsername(username);emp.setPasswordHash(hashedPassword);emp.setSalt(salt);empMapper.insert(emp);} catch (NoSuchAlgorithmException e) {throw new RuntimeException(Error while hashing password, e);}}Overridepublic boolean authenticateUser(String username, String password) {Emp emp empMapper.findByUsername(username);if (emp null) {return false;}try {return PasswordUtils.verifyPassword(password, emp.getSalt(), emp.getPasswordHash());} catch (NoSuchAlgorithmException e) {throw new RuntimeException(Error while verifying password, e);}} }3.5 控制器层 LoginController 控制器层负责接收前端的登录和注册请求并调用服务层进行用户验证。 RestController RequestMapping(/v2) public class LoginController {Autowiredprivate EmpService empService;PostMapping(/login)public String login(RequestParam String username, RequestParam String password) {boolean isAuthenticated empService.authenticateUser(username, password);return isAuthenticated ? Login successful : Invalid credentials;}PostMapping(/register)public String register(RequestParam String username, RequestParam String password) {empService.registerUser(username, password);return User registered successfully;} }4. 最佳实践与安全建议 加盐加密确保密码在加密过程中使用随机生成的盐值使得相同的密码不会产生相同的加密结果。算法选择推荐使用 SHA-256 或更高强度的算法进行加密。HTTPS在传输过程中使用 HTTPS 确保密码安全。限制登录尝试为防止暴力破解限制登录失败的尝试次数。使用更高的加密标准如有需要可以使用 PBKDF2、bcrypt 或 Argon2 等算法。 5. 完整案例 综合上面的手册内容这里是一个用户注册和登录的完整流程 用户通过前端界面输入用户名和密码。后端在用户注册时使用 PasswordUtils.generateSalt() 生成盐值并使用 hashPassword() 方法对密码进行加密然后将加密后的密码和盐值存储到数据库中。用户登录时系统从数据库中查找对应的盐值使用 verifyPassword() 方法验证用户输入的密码是否匹配。 此流程确保了用户密码的安全性并能够防止常见的攻击手段如彩虹表攻击。
http://www.hkea.cn/news/14400451/

相关文章:

  • 宣城网站seo诊断网站开发及维护费用
  • 网站服务器怎么做安全防护网站备案查询工信部管理系统
  • 如何创建手机网站异次元wordpress模板
  • 网站底部放什么深圳建设招标网站首页
  • 湘潭网络公司网站建设公司经营范围分类目录
  • 有哪些网站做的比较好的互联网保险销售行为可回溯管理办法
  • 做网站容易挣钱吗沈阳建站公司模板
  • 桦甸网站开发定制个人导航网站如何赚钱
  • 做猎头要用的网站知乎wordpress图文教程
  • 哪一个网站可以做专利检索报告抚州市城乡建设局网站
  • 网页制作与网站建设06627wp怎么做双语网站
  • 如何做淘宝客有没有免费的网站八年级信息做网站所用软件
  • 建设通是什么网站运动品牌网站开发题目来源
  • 谷歌网站站长指南免费下载app软件下载安装到手机
  • 拨付网站建设经费的请示宁波网络营销推广开发中心
  • 广州专业的网站推广工具住建综合管理平台
  • 龙岩市城乡建设局网站进不去怎么给网站做短信
  • 揭阳做网站设计高端科技产品网站建设
  • 买什么就开什么网站吗公司请人做的网站打不开
  • h5网站开发公司网址平台有哪些
  • 中国移动网站备案管理系统wordpress 安全性
  • 建博会广州网站网站建设与维护项目六
  • 外贸营销网站建设公司做网站推广销售产品
  • 网站备案号示例惠州百度搜索排名优化
  • wap网站制作方案建设网站需要哪些条件
  • 怎么修复网站死链建设集团有限公司英文
  • 珠海市住房城乡建设局网站wordpress登陆评论
  • 宣传网站制作哪家质量好网站推广淘宝联盟怎么做
  • 企业网站管理系统安装教程公司邮箱注册申请
  • 四川网站推广优化帝国cms网站名称