好像终于想明白这事了,原来这因为是one way hash,所以沙拉出来的encrypo不再能够reverse read出来,因此这hashPassword收到pass的String password后,这password object就直接password.getBytes()数数有几个bytes,然后就md.update(password.getBytes());给到MessageDigest md,然后再md.digest()一下给分解成array给到byte[] mdArray,在for loop里mdArray的一个个byte b就逐个给到int v=b,而且是重点的这个int v = b & 0xff;,实际这0xff当然是hex的16*16就是256,所以b & 0xff实际上就是b的bit与0xff的2e256个1做个bit AND相加一下,比如结果1和1是1与1和0是0,而为啥要与0xff相bit AND一下,就是因为b也不知道会有几个bytes,至少很可能不够2e256个bytes,而b & 0xff后就一定是达到2e256个bytes了,而b & 0xff之后的int v = b & 0xff,如果v<16的时候就实际上是说个小于16的int,就是0-15的int,实际上是第1个byte,也就是index第[0]个byte,所以if (v<16)的结果就是{sb.append('0');}而else的v>=16的结果就是sb.append(Integer.toHexString(v));了。
[doge]报名了吗?来背高频单词!
replace /riˈpleis/ vt. 代替;取代
value /ˈvæljuː/ n. 价值;价值观 vt. 重视;珍视
recall /riˈkɔ:l/ v. 记起;回忆起 n. 召回
development /diˈveləpmənt/ n. 发展;发育;成长;开发;研制;研制成果
politics /ˈpɔlətiks/ n.政治;政治事务(或活动)
creative /kriˈeitiv/ adj. 有创造力的,创造的
benefit /ˈbenifit/ n.利益;好处 vi. 得益于;得利于vt. 对……有用;使受益
payment /ˈpeimənt/ n. 报偿;款额;支付
require /riˈkwaiə(r)/ vt. 需要,要求;规定
fashion /ˈfæʃn/ vt. 形成 n. 时尚
improve /imˈpru:v/ vt. 提高 vi. 改善
intellectual /intəˈlektʃuəl/ adj. 智力的;脑力的 n. 知识分子
intelligence /inˈtelidʒəns/ n. 智力;情报,情报人员
technological /tekˈnɔlədʒik(ə)l/ adj. 技术的
common /ˈkɔmən/ adj. 普通的;常见的;共有的
computer /kəmˈpju:tə(r)/ n. 计算机
consumer /kənˈsju:mə(r)/ n. 消费者,用户
found /fɑund/ vt. 建立
tend /tend/ vi. 往往,倾向 vt. 照料
concern /kənˈsə:n/ vt. 涉及;(使)担忧 n. 担心;重要的感兴趣的事物
fund /fʌnd/ vt. 拨款 n. 资金;基金
claim /kleim/ vt. 宣称,断言 n. 宣称,断言;索赔,索款
journalist /ˈdʒə:(r)nəlist/ n. 新闻记者
probably /ˈprɔbəbli/ adv. 很可能
argument /ˈɑ:(r)ɡjumənt/ n. 论据;论点;争论,辩论
------------------------------
加油呀~#考研预报名##考试季##我在微博考研##考研许愿池#
replace /riˈpleis/ vt. 代替;取代
value /ˈvæljuː/ n. 价值;价值观 vt. 重视;珍视
recall /riˈkɔ:l/ v. 记起;回忆起 n. 召回
development /diˈveləpmənt/ n. 发展;发育;成长;开发;研制;研制成果
politics /ˈpɔlətiks/ n.政治;政治事务(或活动)
creative /kriˈeitiv/ adj. 有创造力的,创造的
benefit /ˈbenifit/ n.利益;好处 vi. 得益于;得利于vt. 对……有用;使受益
payment /ˈpeimənt/ n. 报偿;款额;支付
require /riˈkwaiə(r)/ vt. 需要,要求;规定
fashion /ˈfæʃn/ vt. 形成 n. 时尚
improve /imˈpru:v/ vt. 提高 vi. 改善
intellectual /intəˈlektʃuəl/ adj. 智力的;脑力的 n. 知识分子
intelligence /inˈtelidʒəns/ n. 智力;情报,情报人员
technological /tekˈnɔlədʒik(ə)l/ adj. 技术的
common /ˈkɔmən/ adj. 普通的;常见的;共有的
computer /kəmˈpju:tə(r)/ n. 计算机
consumer /kənˈsju:mə(r)/ n. 消费者,用户
found /fɑund/ vt. 建立
tend /tend/ vi. 往往,倾向 vt. 照料
concern /kənˈsə:n/ vt. 涉及;(使)担忧 n. 担心;重要的感兴趣的事物
fund /fʌnd/ vt. 拨款 n. 资金;基金
claim /kleim/ vt. 宣称,断言 n. 宣称,断言;索赔,索款
journalist /ˈdʒə:(r)nəlist/ n. 新闻记者
probably /ˈprɔbəbli/ adv. 很可能
argument /ˈɑ:(r)ɡjumənt/ n. 论据;论点;争论,辩论
------------------------------
加油呀~#考研预报名##考试季##我在微博考研##考研许愿池#
#粤嵌星计划,粤嵌我来了
函数重载:函数名相同,函数的参数个数,函数的参数类型,函数的参数顺序形成的这些函数,那么说这些函数构成 函数重载
判断是否构成函数重载 规则:
1. 函数名相同 --- 前提条件
2. 函数的参数类型不同 || 参数个数不同 || 参数类型的顺序不同,三选一即可,均可构成重载
3. 函数的返回值不是做为函数重载判断的依据
C++是怎样来支持函数重载呢。而C语言不支持,原因在于C和c++,他们之间对源程序编译技术不一样,C++编译器编译源文件时通过底层倾轧(name mangling)技术,v--void i---int c -- char
底层倾轧(name mangling) ---- 将原有函数名 + 参数类型 ----> 在底层时,形成一个新的函数名,从底层,各个函数名还是不一样的。
函数重载:函数名相同,函数的参数个数,函数的参数类型,函数的参数顺序形成的这些函数,那么说这些函数构成 函数重载
判断是否构成函数重载 规则:
1. 函数名相同 --- 前提条件
2. 函数的参数类型不同 || 参数个数不同 || 参数类型的顺序不同,三选一即可,均可构成重载
3. 函数的返回值不是做为函数重载判断的依据
C++是怎样来支持函数重载呢。而C语言不支持,原因在于C和c++,他们之间对源程序编译技术不一样,C++编译器编译源文件时通过底层倾轧(name mangling)技术,v--void i---int c -- char
底层倾轧(name mangling) ---- 将原有函数名 + 参数类型 ----> 在底层时,形成一个新的函数名,从底层,各个函数名还是不一样的。
✋热门推荐