vnsc威尼斯城官网_威尼斯手机娱乐官网-首页

所以我们vnsc威尼斯城官网_威尼斯手机娱乐官网-首页只会为您提供精品服务;关注您的需求——如关注我们的未来,vnsc威尼斯城官网_威尼斯手机娱乐官网-首页是一个游戏的最好帮手一样,vnsc威尼斯城官网_威尼斯手机娱乐官网-首页成为了游戏娱乐的最好代言人,欢迎前来。

vnsc威尼斯城官网 > 家居装修 > 紫

原标题:紫

浏览次数:94 时间:2019-10-14

摄影/前期:@伍回方强子

//NSDecimalNumber是NSNumber的子类,是苹果针对浮点型总结时存在精度总括相对误差的标题而提供
的多个类

1.运用方式

/**
* pwdStrong
* -1:密码为null或空字符
* 0 :密码长度不是6-14位
* 1 :一种方式(纯小写字母,纯大写字母,纯数字,纯特殊字符)
* 2 :三种格局
* 3 :二种方式
* 4 :多种形式
*/

String pwd = password.getText().toString().trim();
PwdCheckUtil pwdCheck = new PwdCheckUtil();
int pwdStrong = pwdCheck.checkStrong(pwd);
if(pwdStrong == -1) {
    showSystemShortToast(getString(R.string.hint_user_pwd));
    password.requestFocus();
    return false;
}
if (pwdStrong == 0) {
    showSystemShortToast(getString(R.string.register_hint_pwd));
    password.requestFocus();
    return false;
}
if(pwdStrong < 2){
    showSystemShortToast(getString(R.string.text_pwd_rule));
    password.requestFocus();
    return false;
}

出镜:@海玲

计量有关

NSString *str1 = @"100.90";
NSString *str2 = @"100.09";

NSDecimalNumber *decimal1 = [NSDecimalNumber decimalNumberWithString:str1];
NSDecimalNumber *decimal2 = [NSDecimalNumber decimalNumberWithString:str2];

//加
NSDecimalNumber *addDecimal = [decimal1 decimalNumberByAdding:decimal2];
NSLog(@"%@",addDecimal);

//减
NSDecimalNumber *subtractDecimal = [decimal1 decimalNumberBySubtracting:decimal2];
NSLog(@"%@",subtractDecimal);

//乘
NSDecimalNumber *multiplyDeciaml = [decimal1 decimalNumberByMultiplyingBy:decimal2];
NSLog(@"%@",multiplyDeciaml);

//除
NSDecimalNumber *dividDecimal = [decimal1 decimalNumberByDividingBy:decimal2];
NSLog(@"%@",dividDecimal);

//次方运算
NSDecimalNumber *raisingDecimal = [decimal1 decimalNumberByRaisingToPower:0];
NSLog(@"%@",raisingDecimal);

//10次方
NSDecimalNumber *multiplyingByPowerOf10Decimal = [decimal1 decimalNumberByRaisingToPower:10];
NSLog(@"%@",multiplyingByPowerOf10Decimal);

2.工具类

/**
* Created by hqz on 16/2/27.
*/

/**
* 首先大家来看下密码能够有怎样字符组成。
* a-z(小写)26个字符,
* A-Z(大写)26个字符,
* 0-9(数字)12个数字字符,
* `~!@#$%^&*()-_=+[{]}|;:'",<.>/? (特殊字符)叁12个特殊字符。
* 所以密码能够从那91个字符中精选。

过分简短的密码(即只包括小写字母和数字)。

密码是1位:结果为36的三回方,即36 > 3*10^1种可能。

密码是2位:结果为36的2次方,即1296 > 1*10^3种可能。

密码是3位:结果为36的3次方,即46656 > 4*10^4 种可能。

密码是4位:结果为36的4次方,即1679616 > 1*10^6 种可能。

密码是5位:结果为36的5次方,即60466176 > 6*10^7种可能。

密码是6位:结果为36的6次方,即2176782336 > 2*10^9 种可能。

复杂密码(即包涵全部字符)。

密码是1位:结果为96的一遍方,即96 > 9*10^1种可能。

密码是2位:结果为96的2次方,即9216 > 9*10^3 种可能。

密码是3位:结果为96的3次方,即884736 > 8*10^5种可能。

密码是4位:结果为96的4次方,即84934656 > 8*10^7 种可能。

密码是5位:结果为96的5次方,即8153726976 > 8*10^9 种可能。

密码是6位:结果为96的6次方,即782757789656 > 7*10^11种可能。

从这里列出来的结果上看,你只怕感觉4位应该就安全了。关于是或不是安全在后文中描述。
*/

/**
* pwdStrong
* -1:密码为null或空字符
* 0 :密码长度不是6-二十位
* 1 :一种情势(纯小写字母,纯大写字母,纯数字,纯特殊字符)
* 2 :两种方式
* 3 :二种格局
* 4 :种种情势
*/

public class PwdCheckUtil {

/**
 * CharMode函数
 * @param iN ASSIC码值
 * @return   测试某个字符是属于哪一类.
 */
private int  CharMode(int iN){
    if (iN>=48 && iN <=57) //数字
        return 1;
    if (iN>=65 && iN <=90) //大写字母
        return 2;
    if (iN>=97 && iN <=122) //小写
        return 4;
    else
        return 8; //特殊字符
}

//bitTotal函数
//计算出当前密码当中一共有多少种模式
private int bitTotal(int num){
    int modes=0;
    for (int i=0;i<4;i++){
        if (num %2 == 1)  modes++;
        num>>>=1;
    }
    return modes;
}

//checkStrong函数
//返回密码的强度级别
public int checkStrong(String sPW){
    if (sPW == null || sPW.length() == 0)
        return -1;
    if (sPW.length()<6 || sPW.length() >16)
        return 0; //密码太短

    int Modes=0;
    for (int i=0;i<sPW.length();i++){
        Modes|=CharMode(sPW.charAt(i));//测试每一个字符的类别并统计一共有多少种模式.
    }
    return bitTotal(Modes);
}

}

本文由vnsc威尼斯城官网发布于家居装修,转载请注明出处:

关键词:

上一篇:没有了

下一篇:没有了