feat(verify):增加生成指定位数的验证码功能。
This commit is contained in:
parent
a0f189d1f4
commit
418fc4dccf
|
@ -23,7 +23,7 @@ Rust 中可以使用的常用辅助功能工具箱。主要配备以下功能:
|
|||
- 签名算法
|
||||
- [ ] RSA 签名算法
|
||||
- 验证码生成器
|
||||
- [ ] 随机验证码生成算法
|
||||
- [x] 随机验证码生成算法
|
||||
- 序列化算法
|
||||
- [x] Base64 算法
|
||||
- [x] Hex 直转
|
||||
|
|
|
@ -0,0 +1,19 @@
|
|||
use rand::{seq::SliceRandom, thread_rng};
|
||||
|
||||
const RAND_STR_SRC: &str = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890";
|
||||
|
||||
/// 生成一个指定长度的随机验证码。
|
||||
///
|
||||
/// - `n`:要生成的验证码长度。
|
||||
pub fn random_verify_code(n: usize) -> Box<String> {
|
||||
let choices = RAND_STR_SRC.as_bytes();
|
||||
let mut rng = thread_rng();
|
||||
let mut code: Vec<String> = vec![];
|
||||
while code.len() < n {
|
||||
match choices.choose(&mut rng) {
|
||||
Some(c) => code.push(String::from_utf8(vec![*c]).unwrap()),
|
||||
None => continue,
|
||||
}
|
||||
}
|
||||
Box::from(code.join(""))
|
||||
}
|
Loading…
Reference in New Issue
Block a user