文档章节

生成字母和特殊符号随机密码

Curry_M
 Curry_M
发布于 2017/04/07 15:11
字数 235
阅读 9
收藏 0
@Service("providerService")
public class ProviderServiceImpl implements ProviderService {

	private static Logger logger = Logger.getLogger(ProviderServiceImpl.class);

	@Autowired
	private ProviderMapper providerMapper;

	static char[] bigNum = { '!', '@', '#', '$', '%', '^', '&', '*' };
	static char[] smallNum = new char[26];
	static int[] num = new int[10];

	@Override
	public String createProvider(Provider provider) {
		try {
			if (provider != null) {
				provider.setId(null);
				provider.setCreateTime(new Date());
				provider.setModifyTime(provider.getCreateTime());
				Long maxId = providerMapper.selectMaxId();
				// 生成救援商code
				String providerCode = 10000L + maxId + 1 + "";
				provider.setProviderCode(providerCode);
				// 生成key
				String key = getKey();
				provider.setPublicKey(key);
				provider.setPrivateKey(key);

				providerMapper.insertSelective(provider);
				return provider.getProviderCode();
			}
		} catch (Exception e) {
			logger.error("新增供应商异常" + e);
		}
		return null; // 新增失败
	}

	public String getKey() {
		String str = "";// 密码
		init();
		Random random = new Random();
		int big_len = 4;
		int small_len = 6;
		int num_len = 6;
		// 每一位生成对应的密码
		for (int i = 0; i < num_len; i++) {
			str += num[random.nextInt(10)];
		}
		for (int i = 0; i < small_len; i++) {
			str += smallNum[random.nextInt(26)];
		}
		for (int i = 0; i < big_len; i++) {
			str += bigNum[random.nextInt(8)];
		}
		return str;
	}

	public static void init() {
		for (int i = 97; i <= 122; i++) {// 生成小写字母表
			smallNum[i - 97] = (char) i;
		}
		for (int i = 0; i <= 9; i++) {// 生成数字表
			num[i] = i;
		}
	}

	@Override
	public void editProvider(Provider provider) {
		try {
			providerMapper.updateByCodeSelective(provider);
		} catch (Exception e) {
			logger.error("修改救援商异常" + e);
		}
	}
}

 

© 著作权归作者所有

共有 人打赏支持
Curry_M
粉丝 1
博文 88
码字总数 84728
作品 0
浦东
程序员
linux 中usermod、用户密码管理及密码随机生成工具mkpasswd

一、 usermod命令 1. usermod更改用户的属性 usermod -u 111 user1 更改用户user1的UID为111 usermod -g grp2 user2 更改user2的组为user2 usermod -d /home/test user3 更改user3的家目录为......

fengyunshan911
2017/08/15
0
0
用户及密码管理

1.usermod命令 usermod命令常用于修改用户信息,如uid,gid,用户家目录,用户shell等。 语法如下:usermod [-Options] [用户帐号] 常用选项: -c   修改用户帐号的备注文字。 -d登入目录>...

LavenDer7n
2017/10/31
0
0
usermod 命令、mkpasswd命令及用户密码管理

1、usermod命令 usermod ,是更改用户属性的命令,用法与 useradd 有点相似。主要有以下几个用法:① 更改用户 uid :usermod + -u + 指定ID + 用户名 ;② 更改用户 gid :usermod + -g + ...

JolieLin
01/02
0
0
usermod-passwd-mkpasswd

usermod: 更改用户相关信息: usermod -u 1111 u1(更改u1用户的用户ID为1111) usermod -g [2222/g2] u1 (将u1用户的组更改为组ID为2222的组,或者更改为组名是g2的组) usermod -d /home...

ZHENG-JY
06/10
0
0
2017-12-26 Linux学习笔记

3.4 usermod命令 usermod用于修改用户账户,其语法为:usermod [选项] username-u 指定UID-g 指定GID或组名(同一时间只允许1个组)-d 指定家目录-s 指定用户shell-G 指定扩展组(允许多个组,即一...

XiaoluHuang
2017/12/26
0
0

没有更多内容

加载失败,请刷新页面

加载更多

麒麟AI首席科学家现世

8月31日,华为发布了新一代顶级人工智能手机芯片麒麟980,成为全球首款7nm工艺手机芯片,AI方面也实现飞跃,支持人脸识别、物体识别、物体检测、图像分割、智能翻译等。 虽然如今人人都在热议...

问题终结者
昨天
1
0
告警系统主脚本、告警系统配置文件、告警系统监控项目

告警系统主脚本 main.sh内容 #!/bin/bash#Written by aming.# 是否发送邮件的开关export send=1# 过滤ip地址export addr=`/sbin/ifconfig |grep -A1 "ens33: "|awk '/inet/ {pr...

芬野de博客
昨天
2
0
MySQL autocommit探究

-- sessionA:tx_isolation=REPEATABLE-READmysql> select connection_id();+-----------------+| connection_id() |+-----------------+| 28 |+-----------------+......

安小乐
昨天
7
0
c++多线程锁 Mutex  自动判断死锁

c++多线程锁可以使用absl::Mutex std::mutex这两种,下面是demo代码。 使用absl:Mutex的时候打印: [mutex.cc : 1338] RAW: Cycle: [mutex.cc : 1352] RAW: mutex@0x683b68 stack: @ 0x43856......

青黑
昨天
3
0
Blockathon2018(成都站)比赛落幕,留给我们这些区块链应用思考

9月14日,HiBlock区块链社区主办的第二届Blockathon在成都菁融国际广场成功举行,30名参赛者分为5支队伍在48小时内完成区块链项目的创意、开发及路演,经过紧张的开发及现场评选,最终币托(...

HiBlock
昨天
1
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部