4个稳定版本
1.0.3 | 2021年10月7日 |
---|---|
1.0.2 | 2021年4月29日 |
1.0.1 | 2020年11月10日 |
1.0.0 | 2020年11月9日 |
在 认证 中排名 198
每月下载量 103,933
61KB
992 行
password-rules-parser
Rust解析器,用于HTML passwordrules
属性,这是一个允许服务以机器可读格式指定其密码要求的HTML属性提议。
该规范主要得到苹果公司的支持,他们的工具和文档可以在 此处 找到。
请参阅该crate的文档以获取我们的入门指南。
示例
此示例可以通过 cargo run --example parse
运行。
use password_rules_parser::{parse_password_rules, CharacterClass};
let password_rules = "minlength: 8; maxlength: 32; required: lower, upper; required: digit; allowed: [-_./\\@$*&!#];";
let parsed_rules =
parse_password_rules(password_rules, true).expect("failed to parse password rules");
assert_eq!(parsed_rules.min_length.unwrap(), 8);
assert_eq!(parsed_rules.max_length.unwrap(), 32);
// This password rule does not place a restriction on consecutive characters
assert!(parsed_rules.max_consecutive.is_none());
assert_eq!(
parsed_rules.allowed,
vec![CharacterClass::Custom(vec![
'!', '#', '$', '&', '*', '-', '.', '/', '@', '\\', '_',
])]
);
assert_eq!(
parsed_rules.required,
vec![
vec![CharacterClass::Upper, CharacterClass::Lower],
vec![CharacterClass::Digit]
]
);
// The above information can be used to make informed decisions about what password
// to generate for use with a specific service
您可以通过 cargo run --example cli
使用此工具解析任意规则。
MSRV
当前最低支持的Rust版本为1.46.0。在需要时,这将提升到最新的稳定Rust版本。
致谢
由1Password团队用❤️制作,感谢优秀的 nom 解析库。
许可证
根据您的选择,许可协议为Apache License,版本2.0 或 MIT许可证。除非您明确说明,否则根据Apache-2.0许可证定义的任何有意提交以包含在此crate中的贡献,均应按上述方式双重许可,而无需任何额外条款或条件。
依赖关系
~1–11MB
~69K SLoC