什么数据库? 普通的 Oracle , DB2, SQL Server 的话, 简单。 例如: CHECK ( 性别 IN ( '男' , '女', '不明' ) ) 如果是 Mysql 的话, 使用 enum 也就是建表的时候指定。 例如: mysql>CREATE TABLE test_create_tab5 ( ->id INT PRIMARY KEY...
可用check约束来实现。 如,创建测试表: create table test(id varchar(10) check (len(id)>=6))测试方法: 1、插入一个不足6位长的字符,会报如下错误: 2、插入一个大于等于6位长的字符,会提示成功:
ALTER TABLE 表名 ADD CONSTRAINT CK_约束名 CHECK(len(列名)>=6)
年龄 >18
只能约束位数 CONSTRAINT cCusAbbName CHECK (cCusAbbName LIKE '%[a-zA-Z]%') and LENGTHB(cCusAbbName) >6)
alter table Table add constraint CN_Column1 check (len(Column1)>6) 替换掉Table和Column1即可
check 约束里面 设置 一般是在表设置列名 后面 写上 check(len(Password)>=6 and len(Password)
检查约束首字母为s: check(col1 like 's%') 检查约束前3位和后8位均为数字字符: check(col2 like '[0-9][0-9][0-9]%[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]')
create table aa( ..., pwd varchar(32), ..., check(len(pwd) >6) --用check约束,pwd字段长度必须要6位以上)
数据库如何判断密码的长度是否满足6位可以对表加长度制约
也可以len
但是,一般密码在数据库中都是加过密的值,或者是raw类型的,所以不能直接判断,
要先解密然后判断长度.
会,暴力破解的明显问题是密码越长,破解密码所用的时间就越长。密码一旦超过一定长度,基本上不可能强行破解。例如,使用破解的服务器集群,每秒可以尝试3500亿次。破解6位密码只需4.08秒,7位密码为6.47分钟,8位密码为10.24小时,9位密码为40.53天,10位密码为10.55年。
服务器集群具有更快的密码破解速度
简单的长密码远远不够,因为也有破解密码的方法,就是使用"密码簿"。"密码簿"是一组常见的密码,还集成了一些常用的日期和词汇,随着破解密码的增加,密码簿也不断丰富。
密码簿已成为破解密码的一种手段。
破解专家会针对不同的环境使用不同大小的密码本,即原始暴力破解进入密码簿的尝试,有些人也会有自己的密码簿,一般来说,密码本越丰富,密码越常见,快速破解的几率就越高。
破解密码比你想象的要容易。
所以设置密码的原则是,第一个密码足够长,第二个是我们不能使用普通单词,也就是我们常说的"强密码。"这就是为什么有些网站要求密码不少于8位,必须包含大写和小写字母和数字。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)