Maven Password 加密

1、诉求

       避免 settings.xml 文件中,如下 password 明文显示,现对其配置为 加密 存储。

<server>
    <id>deploymentRepo</id>
    <username>admin</username>
    <password>12345678</password>
</server>

       这种方式的配置很容易被别人看到从而泄漏了你的个人信息,显然是不适应于我的这种环境下使用的。

2、加密

       相关命令:

mvn --encrypt-master-password <password>
mvn --encrypt-password <password>

       相关文件:

  • ~/.m2/settings-security.xml。(无论 settings.xml 文件放哪,settings-security.xml 一定要在这,否则提示找不到)
  • xxx/settings.xml。

2-1 获取master密码

mvn --encrypt-master-password
Master password:

       本例,我们对 12345678 进行加密。不要明文打在命令后面,以防记录在 shell 历史中。
       将得到的结果,含花括号,整体放入 settings-security.xml 中:

<settingsSecurity>
    <master>{VrVw6/Cg8FYHpfLj8oO/qRbMY5VrfGtIeR7RX5OHeV0=}</master>
</settingsSecurity>

2-2 获取server密码

mvn --encrypt-password
Password:

       再次输入 12345678。把得到的加密串添加到 settings.xml 中 server 节点的 password 中:

<server>
    <id>deploymentRepo</id>
    <username>admin</username>
    <password>{2Db+TFdWDgQHlN7gBd1PAZHEC5h5E3Wuhcs9NBLdVIE=}</password>
</server>

       Ok,完事 ~

Maven项目中使用BCrypt(一种广泛用于密码存储的加密算法)进行密码加密,你可以遵循以下步骤: 1. 添加依赖:首先,在pom.xml文件中添加BCrypt库的依赖。对于Spring Boot项目,可以使用Spring Security Bcrypt Starter: ```xml <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-security</artifactId> </dependency> ``` 或者单独引入BCrypt库: ```xml <dependency> <groupId>org.mindrot</groupId> <artifactId>jbcrypt</artifactId> <version>0.4.5</version> <!-- 根据实际版本替换 --> </dependency> ``` 2. 配置加密工具:如果你使用Spring Security,可以在配置类中注入BCryptPasswordEncoder并创建一个Bean: ```java import org.springframework.beans.factory.annotation.Autowired; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.core.task.TaskExecutor; import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder; @Configuration public class AppConfig { @Autowired private TaskExecutor taskExecutor; @Bean public BCryptPasswordEncoder passwordEncoder() { return new BCryptPasswordEncoder(); } } ``` 3. 加密用户密码:在保存用户密码时,调用`BCryptPasswordEncoder.encode()`方法对密码进行加密: ```java String plainPassword = "your-password"; String hashedPassword = passwordEncoder().encode(plainPassword); ``` 4. 验证密码:当用户登录时,使用`BCryptPasswordEncoder.matches()`方法对比输入的密码和存储的哈希值: ```java boolean isCorrect = passwordEncoder().matches(inputPassword, storedHashedPassword); ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值