znt/module/user/test/model/checkpassword.php

177 lines
18 KiB
PHP
Executable file
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

#!/usr/bin/env php
<?php
/**
title=测试 userModel->checkPassword();
cid=19588
- 密码为空,返回 false。属性result @0
- 密码为空有错误提示。第errors条的password1属性 @『密码』不能为空。
- 密码为空,允许密码为空,返回 true。属性result @1
- 密码为空允许密码为空无错误提示。第errors条的password1属性 @~~
- 密码不为空,两次密码不同,未设置密码安全属性,返回 false。属性result @0
- 密码不为空两次密码不同未设置密码安全属性有错误提示。第errors条的password1属性 @两次密码应该相同。
- 密码不为空,两次密码相同,未设置密码安全属性,返回 false。属性result @0
- 密码不为空两次密码相同未设置密码安全属性有错误提示。第errors条的password1属性 @密码须6位及以上。
- 密码不为空,两次密码相同,密码安全属性设为小于不检查的自定义数字,返回 false。属性result @0
- 密码不为空两次密码相同密码安全属性设为小于不检查的自定义数字有错误提示。第errors条的password1属性 @密码须6位及以上。
- 密码不为空,两次密码相同,密码安全属性设为不检查,返回 false。属性result @0
- 密码不为空两次密码相同密码安全属性设为不检查有错误提示。第errors条的password1属性 @密码须6位及以上。
- 密码不为空,两次密码相同,密码安全属性设为中,返回 false。属性result @0
- 密码不为空两次密码相同密码安全属性设为中有错误提示。第errors条的password1属性 @密码必须6位及以上且包含大小写字母、数字。
- 密码不为空,两次密码相同,密码安全属性设为强,返回 false。属性result @0
- 密码不为空两次密码相同密码安全属性设为强有错误提示。第errors条的password1属性 @密码必须10位及以上且包含大小写字母、数字、特殊符号。
- 密码不为空,两次密码相同,密码安全属性设为大于强的自定义数字,返回 false。属性result @0
- 密码不为空两次密码相同密码安全属性设为大于强的自定义数字密码强度小于系统设定有错误提示。第errors条的password1属性 @您的密码强度小于系统设定。
- 密码不为空,两次密码相同,未设置修改弱口令密码属性,返回 true。属性result @1
- 密码不为空两次密码相同未设置修改弱口令密码属性无错误提示。第errors条的password1属性 @~~
- 密码不为空,两次密码相同,修改弱口令密码属性设为不强制,返回 true。属性result @1
- 密码不为空两次密码相同修改弱口令密码属性设为不强制无错误提示。第errors条的password1属性 @~~
- 密码不为空,两次密码相同,密码为明文,修改弱口令密码属性设为必须修改,使用自定义常用弱口令检查,返回 false。属性result @0
- 密码不为空两次密码相同密码为明文修改弱口令密码属性设为必须修改使用自定义常用弱口令检查有错误提示。第errors条的password1属性 @密码不能使用【123456,password,12345,12345678,qwerty,123456789,1234,1234567,abc123,111111,123123】这些常用弱口令。
- 密码不为空,两次密码相同,密码为明文,修改弱口令密码属性设为必须修改,使用自定义常用弱口令检查,返回 true。属性result @1
- 密码不为空两次密码相同密码为明文修改弱口令密码属性设为必须修改使用自定义常用弱口令检查无错误提示。第errors条的password1属性 @~~
- 密码不为空,两次密码相同,密码为 md5 加密,修改弱口令密码属性设为必须修改,使用自定义常用弱口令检查,返回 false。属性result @0
- 密码不为空,两次密码相同,密码为 md5 加密修改弱口令密码属性设为必须修改使用自定义常用弱口令检查有错误提示。第errors条的password1属性 @密码不能使用【123456,password,12345,12345678,qwerty,123456789,1234,1234567,abc123,111111,123123】这些常用弱口令。
- 密码不为空,两次密码相同,密码为 md5 加密,修改弱口令密码属性设为必须修改,使用自定义常用弱口令检查,返回 true。属性result @1
- 密码不为空,两次密码相同,密码为 md5 加密修改弱口令密码属性设为必须修改使用自定义常用弱口令检查无错误提示。第errors条的password1属性 @~~
- 密码不为空,两次密码相同,密码为明文,修改弱口令密码属性设为必须修改,使用自定义常用弱口令检查,返回 true。属性result @1
- 密码不为空两次密码相同密码为明文修改弱口令密码属性设为必须修改使用自定义常用弱口令检查无错误提示。第errors条的password1属性 @~~
- 密码不为空,两次密码相同,密码为明文,修改弱口令密码属性设为必须修改,使用自定义常用弱口令检查,返回 false。属性result @0
- 密码不为空两次密码相同密码为明文修改弱口令密码属性设为必须修改使用自定义常用弱口令检查有错误提示。第errors条的password1属性 @密码不能使用【password,12345,12345678,qwerty,123456789,1234,1234567,abc123,111111,123123,1234567890】这些常用弱口令。
- 密码不为空,两次密码相同,密码为 md5 加密,修改弱口令密码属性设为必须修改,使用系统内置常用弱口令检查,返回 true。属性result @1
- 密码不为空,两次密码相同,密码为 md5 加密修改弱口令密码属性设为必须修改使用系统内置常用弱口令检查无错误提示。第errors条的password1属性 @~~
- 密码不为空,两次密码相同,密码为 md5 加密,修改弱口令密码属性设为必须修改,使用系统内置常用弱口令检查,返回 false。属性result @0
- 密码不为空,两次密码相同,密码为 md5 加密修改弱口令密码属性设为必须修改使用系统内置常用弱口令检查有错误提示。第errors条的password1属性 @密码不能使用【password,12345,12345678,qwerty,123456789,1234,1234567,abc123,111111,123123,1234567890】这些常用弱口令。
*/
include dirname(__FILE__, 5) . '/test/lib/init.php';
include dirname(__FILE__, 2) . '/lib/model.class.php';
zenData('user')->gen(1);
zenData('config')->gen(0); // config 表置空,防止安全设置影响测试结果。
su('admin');
global $config;
$userTest = new userModelTest();
$user1 = (object)array('password1' => '');
$user2 = (object)array('password1' => '123456', 'password2' => '12345', 'passwordStrength' => 0, 'passwordLength' => 6);
$user3 = (object)array('password1' => '12345', 'password2' => '12345', 'passwordStrength' => 0, 'passwordLength' => 5);
$user4 = (object)array('password1' => '123456', 'password2' => '123456', 'passwordStrength' => 0, 'passwordLength' => 6);
$user5 = (object)array('password1' => '1234567890', 'password2' => '1234567890', 'passwordStrength' => 0, 'passwordLength' => 10);
$user6 = (object)array('password1' => md5('123456'), 'password2' => md5('123456'), 'passwordStrength' => 0, 'passwordLength' => 6);
$user7 = (object)array('password1' => md5('1234567890'), 'password2' => md5('1234567890'), 'passwordStrength' => 0, 'passwordLength' => 10);
/* 密码为空。*/
$result = $userTest->checkPasswordTest($user1);
r($result) && p('result') && e(0); // 密码为空,返回 false。
r($result) && p('errors:password1') && e('『密码』不能为空。'); // 密码为空,有错误提示。
/* 密码为空,允许密码为空。*/
$result = $userTest->checkPasswordTest($user1, true);
r($result) && p('result') && e(1); // 密码为空,允许密码为空,返回 true。
r($result) && p('errors:password1') && e('~~'); // 密码为空,允许密码为空,无错误提示。
$config->safe = new stdclass();
/* 密码不为空,两次密码不同,未设置密码安全属性。*/
$result = $userTest->checkPasswordTest($user2);
r($result) && p('result') && e(0); // 密码不为空,两次密码不同,未设置密码安全属性,返回 false。
r($result) && p('errors:password1') && e('两次密码应该相同。'); // 密码不为空,两次密码不同,未设置密码安全属性,有错误提示。
/* 密码不为空,两次密码相同,未设置密码安全属性。*/
$result = $userTest->checkPasswordTest($user3);
r($result) && p('result') && e(0); // 密码不为空,两次密码相同,未设置密码安全属性,返回 false。
r($result) && p('errors:password1') && e('密码须6位及以上。'); // 密码不为空,两次密码相同,未设置密码安全属性,有错误提示。
/* 密码不为空,两次密码相同,密码安全属性设为小于不检查的自定义数字。*/
$config->safe->mode = -1;
$result = $userTest->checkPasswordTest($user3);
r($result) && p('result') && e(0); // 密码不为空,两次密码相同,密码安全属性设为小于不检查的自定义数字,返回 false。
r($result) && p('errors:password1') && e('密码须6位及以上。'); // 密码不为空,两次密码相同,密码安全属性设为小于不检查的自定义数字,有错误提示。
/* 密码不为空,两次密码相同,密码安全属性设为不检查。*/
$config->safe->mode = 0;
$result = $userTest->checkPasswordTest($user3);
r($result) && p('result') && e(0); // 密码不为空,两次密码相同,密码安全属性设为不检查,返回 false。
r($result) && p('errors:password1') && e('密码须6位及以上。'); // 密码不为空,两次密码相同,密码安全属性设为不检查,有错误提示。
/* 密码不为空,两次密码相同,密码安全属性设为中。*/
$config->safe->mode = 1;
$result = $userTest->checkPasswordTest($user3);
r($result) && p('result') && e(0); // 密码不为空,两次密码相同,密码安全属性设为中,返回 false。
r($result) && p('errors:password1') && e('密码必须6位及以上且包含大小写字母、数字。'); // 密码不为空,两次密码相同,密码安全属性设为中,有错误提示。
/* 密码不为空,两次密码相同,密码安全属性设为强。*/
$config->safe->mode = 2;
$result = $userTest->checkPasswordTest($user3);
r($result) && p('result') && e(0); // 密码不为空,两次密码相同,密码安全属性设为强,返回 false。
r($result) && p('errors:password1') && e('密码必须10位及以上且包含大小写字母、数字、特殊符号。'); // 密码不为空,两次密码相同,密码安全属性设为强,有错误提示。
/* 密码不为空,两次密码相同,密码安全属性设为大于强的自定义数字。*/
$config->safe->mode = 3;
$result = $userTest->checkPasswordTest($user3);
r($result) && p('result') && e(0); // 密码不为空,两次密码相同,密码安全属性设为大于强的自定义数字,返回 false。
r($result) && p('errors:password1') && e('您的密码强度小于系统设定。'); // 密码不为空,两次密码相同,密码安全属性设为大于强的自定义数字,密码强度小于系统设定,有错误提示。
/* 密码不为空,两次密码相同,未设置修改弱口令密码属性。*/
$config->safe->mode = 0;
unset($config->safe->changeWeak);
$result = $userTest->checkPasswordTest($user4);
r($result) && p('result') && e(1); // 密码不为空,两次密码相同,未设置修改弱口令密码属性,返回 true。
r($result) && p('errors:password1') && e('~~'); // 密码不为空,两次密码相同,未设置修改弱口令密码属性,无错误提示。
/* 密码不为空,两次密码相同,修改弱口令密码属性设置为不强制。*/
$config->safe->mode = 0;
$config->safe->changeWeak = 0;
$result = $userTest->checkPasswordTest($user4);
r($result) && p('result') && e(1); // 密码不为空,两次密码相同,修改弱口令密码属性设为不强制,返回 true。
r($result) && p('errors:password1') && e('~~'); // 密码不为空,两次密码相同,修改弱口令密码属性设为不强制,无错误提示。
/* 密码不为空,两次密码相同,密码为明文,修改弱口令密码属性设为必须修改,使用系统内置常用弱口令检查。*/
$config->safe->mode = 0;
$config->safe->changeWeak = 1;
$result = $userTest->checkPasswordTest($user4);
r($result) && p('result') && e(0); // 密码不为空,两次密码相同,密码为明文,修改弱口令密码属性设为必须修改,使用自定义常用弱口令检查,返回 false。
r($result) && p('errors:password1', '|') && e('密码不能使用【123456,password,12345,12345678,qwerty,123456789,1234,1234567,abc123,111111,123123】这些常用弱口令。'); // 密码不为空,两次密码相同,密码为明文,修改弱口令密码属性设为必须修改,使用自定义常用弱口令检查,有错误提示。
$result = $userTest->checkPasswordTest($user5);
r($result) && p('result') && e(1); // 密码不为空,两次密码相同,密码为明文,修改弱口令密码属性设为必须修改,使用自定义常用弱口令检查,返回 true。
r($result) && p('errors:password1', '|') && e('~~'); // 密码不为空,两次密码相同,密码为明文,修改弱口令密码属性设为必须修改,使用自定义常用弱口令检查,无错误提示。
/* 密码不为空,两次密码相同,密码为 md5 加密,修改弱口令密码属性设为必须修改,使用系统内置常用弱口令检查。*/
$config->safe->mode = 0;
$config->safe->changeWeak = 1;
$result = $userTest->checkPasswordTest($user6);
r($result) && p('result') && e(0); // 密码不为空,两次密码相同,密码为 md5 加密,修改弱口令密码属性设为必须修改,使用自定义常用弱口令检查,返回 false。
r($result) && p('errors:password1', '|') && e('密码不能使用【123456,password,12345,12345678,qwerty,123456789,1234,1234567,abc123,111111,123123】这些常用弱口令。'); // 密码不为空,两次密码相同,密码为 md5 加密,修改弱口令密码属性设为必须修改,使用自定义常用弱口令检查,有错误提示。
$result = $userTest->checkPasswordTest($user7);
r($result) && p('result') && e(1); // 密码不为空,两次密码相同,密码为 md5 加密,修改弱口令密码属性设为必须修改,使用自定义常用弱口令检查,返回 true。
r($result) && p('errors:password1', '|') && e('~~'); // 密码不为空,两次密码相同,密码为 md5 加密,修改弱口令密码属性设为必须修改,使用自定义常用弱口令检查,无错误提示。
zenData('config')->loadYaml('config')->gen(1); // 生成自定义常用弱口令。
$tester->loadConfigFromDB(); // 加载自定义常用弱口令。
/* 密码不为空,两次密码相同,密码为明文,修改弱口令密码属性设为必须修改,使用自定义常用弱口令检查。*/
$config->safe->mode = 0;
$config->safe->changeWeak = 1;
$result = $userTest->checkPasswordTest($user4);
r($result) && p('result') && e(1); // 密码不为空,两次密码相同,密码为明文,修改弱口令密码属性设为必须修改,使用自定义常用弱口令检查,返回 true。
r($result) && p('errors:password1', '|') && e('~~'); // 密码不为空,两次密码相同,密码为明文,修改弱口令密码属性设为必须修改,使用自定义常用弱口令检查,无错误提示。
$result = $userTest->checkPasswordTest($user5);
r($result) && p('result') && e(0); // 密码不为空,两次密码相同,密码为明文,修改弱口令密码属性设为必须修改,使用自定义常用弱口令检查,返回 false。
r($result) && p('errors:password1', '|') && e('密码不能使用【password,12345,12345678,qwerty,123456789,1234,1234567,abc123,111111,123123,1234567890】这些常用弱口令。'); // 密码不为空,两次密码相同,密码为明文,修改弱口令密码属性设为必须修改,使用自定义常用弱口令检查,有错误提示。
/* 密码不为空,两次密码相同,密码为 md5 加密,修改弱口令密码属性设为必须修改,使用自定义常用弱口令检查。*/
$config->safe->mode = 0;
$config->safe->changeWeak = 1;
$result = $userTest->checkPasswordTest($user6);
r($result) && p('result') && e(1); // 密码不为空,两次密码相同,密码为 md5 加密,修改弱口令密码属性设为必须修改,使用系统内置常用弱口令检查,返回 true。
r($result) && p('errors:password1', '|') && e('~~'); // 密码不为空,两次密码相同,密码为 md5 加密,修改弱口令密码属性设为必须修改,使用系统内置常用弱口令检查,无错误提示。
$result = $userTest->checkPasswordTest($user7);
r($result) && p('result') && e(0); // 密码不为空,两次密码相同,密码为 md5 加密,修改弱口令密码属性设为必须修改,使用系统内置常用弱口令检查,返回 false。
r($result) && p('errors:password1', '|') && e('密码不能使用【password,12345,12345678,qwerty,123456789,1234,1234567,abc123,111111,123123,1234567890】这些常用弱口令。'); // 密码不为空,两次密码相同,密码为 md5 加密,修改弱口令密码属性设为必须修改,使用系统内置常用弱口令检查,有错误提示。