SpringBoot加密加盐Demo

1. 引入相关依赖

<dependency><groupId>org.springframework.bootgroupId><artifactId>spring-boot-starter-webartifactId>
dependency>
<dependency><groupId>mysqlgroupId><artifactId>mysql-connector-javaartifactId>
dependency>
<dependency><groupId>org.apache.shirogroupId><artifactId>shiro-springartifactId><version>1.7.0version>
dependency>
<dependency><groupId>com.baomidougroupId><artifactId>mybatis-plus-boot-starterartifactId><version>3.4.1version>
dependency>
<dependency><groupId>org.projectlombokgroupId><artifactId>lombokartifactId><optional>trueoptional>
dependency>

2. 编写帮助类

package com.myh.utils;import org.apache.shiro.crypto.hash.SimpleHash;/*** @Author: Myh* @CreateTime: 2020/12/22 9:23* @Description:  加密工具类*/
public class Md5Utils {/*** 密码加密** @return 加密后的密码*/public static String md5Encryption(String source, String salt) {//加密形式String algorithmName = "MD5";//加密次数int hashIterations = 1024;SimpleHash simpleHash = new SimpleHash(algorithmName, source, salt, hashIterations);return simpleHash + "";}
}

3. 编写实体

package com.myh.pojo;import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;import java.io.Serializable;/*** @Author: Myh* @CreateTime: 2020/12/22 9:20* @Description:*/
@Data
@NoArgsConstructor
@AllArgsConstructor
public class User implements Serializable {private static final long serialVersionUID = -7416084253505054827L;@TableId(value = "id", type = IdType.AUTO)private Integer id;private String username;private String password;private String salt;
}

4. 编写User工具类

package com.myh.utils;import com.myh.pojo.User;import java.util.UUID;/*** @Author: Myh* @CreateTime: 2020/12/22 9:25* @Description:*/
public class UserUtils {public static void addUser(User user) {//使用Java工具包下的UUID生成盐user.setSalt(UUID.randomUUID().toString().substring(0, 32));user.setPassword(Md5Utils.md5Encryption(user.getUsername(), user.getSalt()));}
}

5. 编写controller

package com.myh.controller;import com.myh.pojo.User;
import com.myh.service.UserService;
import com.myh.utils.UserUtils;
import lombok.extern.slf4j.Slf4j;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;import javax.annotation.Resource;/*** @Author: Myh* @CreateTime: 2020/12/22 9:20* @Description:  用户接口*/
@Slf4j
@RestController
@RequestMapping("/userService")
public class UserController {@Resourceprivate UserService userService;/*** 增加用户* @return string*/@PostMapping("/insert")public String insert(User user) {UserUtils.addUser(user);log.info("[[" + user +"]]");boolean result = userService.save(user);if (result) {return "添加成功";}return "添加失败";}
}

6. 通过浏览器或接口文档测试即可

最终效果:
在这里插入图片描述


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部