当前位置:首页 > 科技  > 软件

React 实现给密码输入框加上【密码强度】展示?

来源: 责编: 时间:2024-06-14 08:48:05 65观看
导读密码强度平时我们在浏览各种网站和 APP 的时候,都接触过密码这个东西~密码设置的好不好,关乎到你的账号安全性,越复杂的密码越安全,所以密码强度很重要,而我们在做注册功能的时候,也有责任去帮协助用户设置一个高密码强度的

密码强度

平时我们在浏览各种网站和 APP 的时候,都接触过密码这个东西~PAN28资讯网——每日最新资讯28at.com

密码设置的好不好,关乎到你的账号安全性,越复杂的密码越安全,所以密码强度很重要,而我们在做注册功能的时候,也有责任去帮协助用户设置一个高密码强度的密码~PAN28资讯网——每日最新资讯28at.com

那么密码强度怎么计算呢? 且应该如何实现以下这样的密码强度动画展示效果呢?PAN28资讯网——每日最新资讯28at.com

PAN28资讯网——每日最新资讯28at.com

思路

其实思路很简单:PAN28资讯网——每日最新资讯28at.com

(1) 监听密码输入框的变化PAN28资讯网——每日最新资讯28at.com

(2) 密码变化时,获取密码文本,并通过某种方式计算这个密码的强度分数PAN28资讯网——每日最新资讯28at.com

(3) 根据强度分数,改变下方块的颜色和宽度PAN28资讯网——每日最新资讯28at.com

  • 0分:强度低,红色,宽度 20%
  • 1分:强度低,红色,宽度 40%
  • 2分:强度中,橙色,宽度 60%
  • 3分:强度高,绿色,宽度 80%
  • 4分:强度高,绿色,宽度 100%

PAN28资讯网——每日最新资讯28at.com

完善动画效果

但是我们如果想实现分格的效果,可以借助伪元素去做~PAN28资讯网——每日最新资讯28at.com

PAN28资讯网——每日最新资讯28at.com

完整代码

import { Input } from 'antd'import { useMemo, useState } from 'react'import { zxcvbn } from '@zxcvbn-ts/core'import './Index.less'const Index = () => {   const [password, setPassword] = useState('')   const passwordStrength = useMemo(() => {        return zxcvbn(password).score   }, [password])   const onChange: React.ChangeEventHandler<HTMLInputElement> = (e) => {        setPassword(e.target.value)   }   return <>        <Input.Password value={password} onChange={onChange} />        <div className='strength-meter-bar'>            <div className='strength-meter-bar--fill' data-score={passwordStrength}></div>        </div>    </>}export default Index
// Index.less.strength-meter-bar {    position: relative;    height: 6px;    margin: 10px auto 6px;    border-radius: 6px;    background-color: rgb(0 0 0 / 25%);      // 增加的伪元素样式代码    &::before,    &::after {      content: '';      display: block;      position: absolute;      z-index: 10;      width: 20%;      height: inherit;      border-width: 0 5px;      border-style: solid;      border-color: #fff;      background-color: transparent;    }    &::before {      left: 20%;    }    &::after {      right: 20%;    }    // 增加的伪元素样式代码      &--fill {      position: absolute;      width: 0;      height: inherit;      transition:        width 0.5s ease-in-out,        background 0.25s;      border-radius: inherit;      background-color: transparent;        &[data-score='0'] {        width: 20%;        background-color: darken(#e74242, 10%);      }        &[data-score='1'] {        width: 40%;        background-color: #e74242;      }        &[data-score='2'] {        width: 60%;        background-color: #efbd47;      }        &[data-score='3'] {        width: 80%;        background-color: fade(#55d187, 50%);      }        &[data-score='4'] {        width: 100%;        background-color: #55d187;      }    }  }

PAN28资讯网——每日最新资讯28at.com

本文链接:http://www.28at.com/showinfo-26-93681-0.htmlReact 实现给密码输入框加上【密码强度】展示?

声明:本网页内容旨在传播知识,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。邮件:2376512515@qq.com

上一篇: 记一次 .NET某工厂报警监控设置崩溃分析

下一篇: 代码很少,却很优秀!RocketMQ的NameServer是如何做到的?

标签:
  • 热门焦点
  • 鸿蒙OS 4.0公测机型公布:甚至连nova6都支持

    鸿蒙OS 4.0公测机型公布:甚至连nova6都支持

    华为全新的HarmonyOS 4.0操作系统将于今天下午正式登场,官方在发布会之前也已经正式给出了可升级的机型产品,这意味着这些机型会率先支持升级享用。这次的HarmonyOS 4.0支持
  • 一加首款折叠屏!一加Open渲染图出炉:罕见单手可握小尺寸

    一加首款折叠屏!一加Open渲染图出炉:罕见单手可握小尺寸

    8月5日消息,此前就有爆料称,一加首款折叠屏手机将会在第三季度上市,如今随着时间临近,新机的各种消息也开始浮出水面。据悉,这款新机将会被命名为&ldquo;On
  • 把LangChain跑起来的三个方法

    把LangChain跑起来的三个方法

    使用LangChain开发LLM应用时,需要机器进行GLM部署,好多同学第一步就被劝退了,那么如何绕过这个步骤先学习LLM模型的应用,对Langchain进行快速上手?本片讲解3个把LangChain跑起来
  • Java NIO内存映射文件:提高文件读写效率的优秀实践!

    Java NIO内存映射文件:提高文件读写效率的优秀实践!

    Java的NIO库提供了内存映射文件的支持,它可以将文件映射到内存中,从而可以更快地读取和写入文件数据。本文将对Java内存映射文件进行详细的介绍和演示。内存映射文件概述内存
  • JavaScript学习 -AES加密算法

    JavaScript学习 -AES加密算法

    引言在当今数字化时代,前端应用程序扮演着重要角色,用户的敏感数据经常在前端进行加密和解密操作。然而,这样的操作在网络传输和存储中可能会受到恶意攻击的威胁。为了确保数据
  • 零售大模型“干中学”,攀爬数字化珠峰

    零售大模型“干中学”,攀爬数字化珠峰

    文/侯煜编辑/cc来源/华尔街科技眼对于绝大多数登山爱好者而言,攀爬珠穆朗玛峰可谓终极目标。攀登珠峰的商业路线有两条,一是尼泊尔境内的南坡路线,一是中国境内的北坡路线。相
  • 本地生活这块肥肉,拼多多也想吃一口

    本地生活这块肥肉,拼多多也想吃一口

    出品/壹览商业 作者/李彦编辑/木鱼拼多多也看上本地生活这块蛋糕了。近期,拼多多在App首页&ldquo;充值中心&rdquo;入口上线了本机生活界面。壹览商业发现,该界面目前主要
  • 得物宠物生意「狂飙」,发力“它经济”

    得物宠物生意「狂飙」,发力“它经济”

    作者|花花小萌主近日,得物宣布正式上线宠物鉴别,通过得物App内的&ldquo;在线鉴别&rdquo;,可找到鉴别宠物的选项。通过上传自家宠物的部位细节,就能收获拥有专业资质认证的得物鉴
  • 华为HarmonyOS 4升级计划公布:首批34款机型今日开启公测

    华为HarmonyOS 4升级计划公布:首批34款机型今日开启公测

    8月4日消息,今天下午华为正式发布了HarmonyOS 4系统,在更流畅的前提下,还带来了不少新功能,UI设计也有变化,会让手机焕然一新。华为宣布,首批机型将会在
Top