首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

c++输入隐藏密码的实现

最近在用C++编写一个图书管理系统, 其中需要用户的登录, 原来没有想太多, 就用了普通的cin输入, 但是前两天组里的同学说, 要是输入密码的时候能将其隐藏就好了。...最后百度谷歌后发现了一个很神奇的函数 实现 简而言之, 就是使用C++的getch()函数, 注意不是getchar, 这个函数可以使用户的输入不显示在屏幕上, 其包含在conio.h头文件中, 下面看代码...putchar(' '); // 输出一个空格将原来的*隐藏 putchar('\b'); // 再回退一格等待输入 count--; } if (count == size - 1...) { // 最大长度为size-1 continue; } if ((c >= 'a' && c = 'A' && c = '...0' && c <= '9')) { // 密码只可包含数字和字母 putchar('*'); // 接收到一个字符后, 打印一个* password[count] = c; count

1.8K40
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    如何让 .NET Core 命令行程序接受密码输入而不显示密码明文

    如何让 .NET Core 命令行程序接受密码输入而不显示密码明文 发布于 2018-05-26 08:51...更新于 2018-09-01 00:04 如果是在 GUI 中要求用户输入密码,各 UI 框架基本都提供了用于输入密码的控件;在这些控件中,用户在输入密码的时候会显示掩码。...然而对于控制台程序来说,并没有用于输入密码的原生方法。 本文将讲述一种在控制台中输入密码,并仅显示掩码的方法。 ---- 开始简单的程序 让我们开始一个简单的 .NET Core 控制台程序。...写一个让用户输入密码并显示掩码的方法 既然控制台本身并没有提供可以为密码进行掩码的方法,那么我们只能自己来写了: public static SecureString ReadPassword(string...= IntPtr.Zero) Marshal.ZeroFreeBSTR(bstr); } return plainString; } ---- 参考资料 c# -

    1.7K30

    scp免输入密码,ssh免输入密码的实用可行操作步骤

    1) 先在任意其他机器上(若没有~/.ssh 要创建一个)登录免密码登录的目标机器(就是需要别的机器向这台机器的IP做scp时面输入密码),之后在 ~/.ssh/known_hosts 中拷贝 最后一行...,表示无证书密码 并且在程序提示passphrase时 回车!!!重要!!!,表示无证书密码 并且在程序提示passphrase时 回车!!!重要!!!...,表示无证书密码 并且在程序提示passphrase时 回车!!!重要!!!,表示无证书密码 并且在程序提示passphrase时 回车!!!重要!!!...,表示无证书密码 将公钥证书id_rsa.pub复制到~/.ssh ,重命名 为 authorized_keys 私钥证书是id_rsa 下载这个文件到本地 3) 在需要执行scp免密码的机器上

    3.5K30

    OC 密码验证(正则+连续输入+输入过于简单判断)

    昨天项目上线了,上线之前老板提出一个要求,登陆密码不能设置过于简单的,不能输入连续的字符,没办法,加班改吧 思路: 1、正则: 正则表达式不用说,百度一搜一大堆,别告诉我不会搜,这我可帮不了你,好吧还是帮帮你吧度娘的百度一下你就知道...(只能帮到这里了,别的真帮不到你了) 2、连续输入: 我们怎么判断连续输入呢,连续输入也就是如下样式 111111 qqqqqq ZZZZZZ 判断这个连续输入有两种办法,一在文本输入框的代理方法中TextFieldDelegate...注释已经很详细了,就不做过多的解释 3、输入过于简单: 什么叫输入过于简单呢,我的理解就是什么  111111  123456  654321  等,这个我们做字符串比较就可以了 总结: 把如上方法写成一个类方法...newPassword]) { count++; } } if (count == password.length) { return NO; // 这里说明 count个相同的字符串,也就是所有密码输入一样了

    2.7K50

    脚本链接 ssh 自动输入密码

    login-via-ssh username password hostname realip script 主要功能是通过 sshsshssh 链接到用户名为 usernameusernameusername,密码为...的时候,会自动输入 yesyesyes,检测到 password:password:password: 时会自动输入 passwordpasswordpassword。...另外,spawnspawnspawn 后双引号里的内容,是要在 sshsshssh 远程链接到的服务器上执行的,因为 sudosudosudo 权限需要键入密码,所以通过 echoechoecho 的方式来进行自动输入密码...说到这里,就不得不说的是,常见的自动输入密码的方法有三种,但是对于 sshsshssh 和 scpscpscp 这种命令只能通过 expectexpectexpect 来进行自动输入密码的操作。.../usr/bin/expect -f # Usage: expect xscp a b c set timeout 10 set source [lindex $argv 0] set target

    4.4K30

    Git保存密码,解决pullpush每次都需要输入密码

    1.方法一 1.1 创建文件存储GIT用户名和密码 在%HOME%目录中,一般为C:\users\Administrator,也可以是你自己创建的系统用户名目录,反正都在C:\users...开头的文件,所以需要借助git bash进行,打开git bash客户端,进行%HOME%目录,然后用touch创建文件 .git-credentials, 用vim编辑此文件,输入内容格式: touch...git-credentials https://{username}:{password}@github.com 1.2 添加Git Config 内容(也可以直接执行1.2,再操作一下pull操作输入密码之后就不用了...文件,会多了一项: [credential]helper = store 重新开启git bash会发现git push时不用再输入用户名和密码 2.方法二 2.1 添加环境变量...machine {git account name}.github.comlogin your-usernmaepassword your-password 重新打开git bash即可,无需再输入用户名和密码

    4.1K10

    C++_输入

    C++中的输入 C++中使用cin对象来获取用户的输入 cin是一个标准输入流对象,即是istream类的对象 cin是全局变量 cin对象”连接”到标准输入设备(一般是用户的键盘),用来存储IO流中的输入的数据...(保存在cin的输入流缓冲区中) int i; cin >> i; cin >> i在执行时 系统从cin的输入流缓冲区中获取数据 如果cin的输入流缓冲区中没有数据,则等待用户在控制台输入数据,然后按下回车...,只是上下文不同,含义不同 ”流“ 像是一个管道,或者说队列 先流入的先流出,后流入的后流出 在向输入输入数据的时候,数据流入到输入流,先输入的在前面,后输入的在后面 在向输入流获取数据的时候,数据流出输入流...,先获取前面的数据,再获取后面的数据 cin的输入流缓冲区中保存用户输入的所有数据,根据指令将数据从前向后依次赋值给对象,若缓冲区为空,则从控制台中获取新输入的数据到输入流缓冲区 所以并不是需要输入一个数据的时候输入一个数据...7'\n'hello world\n' 如果再执行 string x; getline(cin,x); //getline是C++标准库函数,分为两种形式(重载),只知道此处的作用是可以获取cin缓冲区中一行数据

    24620

    Android自定义PasswordInputView密码输入

    欢迎来到“实现自定义密码输入控件”这一章节,PasswordInputView定义了密码输入的监听,支持直接在布局文件定义属性值、支持直接获取密码输入的长度、原始密码…… 先上图 ? ?...PasswordInputView是一个自定义密码输入的控件,类似支付宝、微信支付的密码输入,同时定义了密码输入的监听,支持直接在布局文件定义属性值、支持直接获取密码输入的长度、原始密码等,还可以扩展其他方法...实现原理 1.创建一个类 ‘PasswordInputView’ ,让其继承EditText,因为我们要实现的自定义view是用来密码输入的,所以必须继承EditText。...问得好,笔者在实现过程中也碰到这个问题,当时没有画内容区域,导致输入的原始内容也显示出来了(如下异常图),所以画内容区域(以填充模式绘制Paint.Style.FILL)是为了掩盖原始内容不被发现,切记必不可少...borderPaint.setStrokeWidth(borderWidth); borderPaint.setStyle(Paint.Style.FILL); //以填充模式来画,防止原始输入内容显示出来

    1.2K51
    领券