PAT --- 1067.试密码 (20 分)

本文介绍了一个关于密码验证的小程序设计,该程序限制了用户登录尝试的次数,一旦超过设定的次数,账号将被锁定。通过示例展示了如何使用C++实现这一功能。

1067 试密码 (20 分)

当你试图登录某个系统却忘了密码时,系统一般只会允许你尝试有限多次,当超出允许次数时,账号就会被锁死。本题就请你实现这个小功能。

输入格式:

输入在第一行给出一个密码(长度不超过 20 的、不包含空格、Tab、回车的非空字符串)和一个正整数 N(≤\le 10),分别是正确的密码和系统允许尝试的次数。随后每行给出一个以回车结束的非空字符串,是用户尝试输入的密码。输入保证至少有一次尝试。当读到一行只有单个 # 字符时,输入结束,并且这一行不是用户的输入。

输出格式:

对用户的每个输入,如果是正确的密码且尝试次数不超过 N,则在一行中输出 Welcome in,并结束程序;如果是错误的,则在一行中按格式输出 Wrong password: 用户输入的错误密码;当错误尝试达到 N 次时,再输出一行 Account locked,并结束程序。

输入样例 1:

Correct%pw 3
correct%pw
Correct@PW
whatisthepassword!
Correct%pw
#

输出样例 1:

Wrong password: correct%pw
Wrong password: Correct@PW
Wrong password: whatisthepassword!
Account locked

输入样例 2:

cool@gplt 3
coolman@gplt
coollady@gplt
cool@gplt
try again
#

输出样例 2:

Wrong password: coolman@gplt
Wrong password: coollady@gplt
Welcome in

思路

第一行输入之后,存在一个空格,使用getchar()做缓存。

代码

#include <iostream>
#include <string>
using namespace std;

int main()
{
	int n, nCount = 0;
	string sRight, sInput;
	cin >> sRight >> n;
	getchar();
	while (true) {
		getline(cin, sInput);
		if (sInput == "#") break;
		nCount++;
		if (nCount <= n && sInput == sRight) {
			cout << "Welcome in" << endl; break;	
		}
		else if (nCount <= n && sInput != sRight){
			cout << "Wrong password: " << sInput << endl;
			if (nCount == n) {
				cout << "Account locked" << endl; break;;
			}
		}	
	}
    return 0;
}
sftp -vvv sftp_dy@localhost debug3: spawning "C:\\Program Files\\OpenSSH\\ssh.exe" "-oForwardX11 no" "-oPermitLocalCommand no" "-oClearAllForwardings yes" -v -v -v "-oForwardAgent no" -l sftp_dy -s -- localhost sftp as subprocess OpenSSH_for_Windows_9.8p2 Win32-OpenSSH-GitHub, LibreSSL 4.0.0 debug3: Failed to open file:C:/Users/zwx1262540/.ssh/config error:2 debug3: Failed to open file:C:/ProgramData/ssh/ssh_config error:2 debug3: expanded UserKnownHostsFile '~/.ssh/known_hosts' -> 'C:\\Users\\zwx1262540/.ssh/known_hosts' debug3: expanded UserKnownHostsFile '~/.ssh/known_hosts2' -> 'C:\\Users\\zwx1262540/.ssh/known_hosts2' debug2: resolving "localhost" port 22 debug3: resolve_host: lookup localhost:22 debug3: channel_clear_timeouts: clearing debug3: ssh_connect_direct: entering debug1: Connecting to localhost [127.0.0.1] port 22. debug1: Connection established. debug1: identity file C:\\Users\\zwx1262540/.ssh/id_rsa type 0 debug3: Failed to open file:C:/Users/zwx1262540/.ssh/id_rsa-cert error:2 debug3: Failed to open file:C:/Users/zwx1262540/.ssh/id_rsa-cert.pub error:2 debug3: failed to open file:C:/Users/zwx1262540/.ssh/id_rsa-cert error:2 debug1: identity file C:\\Users\\zwx1262540/.ssh/id_rsa-cert type -1 debug3: Failed to open file:C:/Users/zwx1262540/.ssh/id_ecdsa error:2 debug3: Failed to open file:C:/Users/zwx1262540/.ssh/id_ecdsa.pub error:2 debug3: failed to open file:C:/Users/zwx1262540/.ssh/id_ecdsa error:2 debug1: identity file C:\\Users\\zwx1262540/.ssh/id_ecdsa type -1 debug3: Failed to open file:C:/Users/zwx1262540/.ssh/id_ecdsa-cert error:2 debug3: Failed to open file:C:/Users/zwx1262540/.ssh/id_ecdsa-cert.pub error:2 debug3: failed to open file:C:/Users/zwx1262540/.ssh/id_ecdsa-cert error:2 debug1: identity file C:\\Users\\zwx1262540/.ssh/id_ecdsa-cert type -1 debug3: Failed to open file:C:/Users/zwx1262540/.ssh/id_ecdsa_sk error:2 debug3: Failed to open file:C:/Users/zwx1262540/.ssh/id_ecdsa_sk.pub error:2 debug3: failed to open file:C:/Users/zwx1262540/.ssh/id_ecdsa_sk error:2 debug1: identity file C:\\Users\\zwx1262540/.ssh/id_ecdsa_sk type -1 debug3: Failed to open file:C:/Users/zwx1262540/.ssh/id_ecdsa_sk-cert error:2 debug3: Failed to open file:C:/Users/zwx1262540/.ssh/id_ecdsa_sk-cert.pub error:2 debug3: failed to open file:C:/Users/zwx1262540/.ssh/id_ecdsa_sk-cert error:2 debug1: identity file C:\\Users\\zwx1262540/.ssh/id_ecdsa_sk-cert type -1 debug1: identity file C:\\Users\\zwx1262540/.ssh/id_ed25519 type 3 debug3: Failed to open file:C:/Users/zwx1262540/.ssh/id_ed25519-cert error:2 debug3: Failed to open file:C:/Users/zwx1262540/.ssh/id_ed25519-cert.pub error:2 debug3: failed to open file:C:/Users/zwx1262540/.ssh/id_ed25519-cert error:2 debug1: identity file C:\\Users\\zwx1262540/.ssh/id_ed25519-cert type -1 debug3: Failed to open file:C:/Users/zwx1262540/.ssh/id_ed25519_sk error:2 debug3: Failed to open file:C:/Users/zwx1262540/.ssh/id_ed25519_sk.pub error:2 debug3: failed to open file:C:/Users/zwx1262540/.ssh/id_ed25519_sk error:2 debug1: identity file C:\\Users\\zwx1262540/.ssh/id_ed25519_sk type -1 debug3: Failed to open file:C:/Users/zwx1262540/.ssh/id_ed25519_sk-cert error:2 debug3: Failed to open file:C:/Users/zwx1262540/.ssh/id_ed25519_sk-cert.pub error:2 debug3: failed to open file:C:/Users/zwx1262540/.ssh/id_ed25519_sk-cert error:2 debug1: identity file C:\\Users\\zwx1262540/.ssh/id_ed25519_sk-cert type -1 debug3: Failed to open file:C:/Users/zwx1262540/.ssh/id_xmss error:2 debug3: Failed to open file:C:/Users/zwx1262540/.ssh/id_xmss.pub error:2 debug3: failed to open file:C:/Users/zwx1262540/.ssh/id_xmss error:2 debug1: identity file C:\\Users\\zwx1262540/.ssh/id_xmss type -1 debug3: Failed to open file:C:/Users/zwx1262540/.ssh/id_xmss-cert error:2 debug3: Failed to open file:C:/Users/zwx1262540/.ssh/id_xmss-cert.pub error:2 debug3: failed to open file:C:/Users/zwx1262540/.ssh/id_xmss-cert error:2 debug1: identity file C:\\Users\\zwx1262540/.ssh/id_xmss-cert type -1 debug1: Local version string SSH-2.0-OpenSSH_for_Windows_9.8 Win32-OpenSSH-GitHub debug1: Remote protocol version 2.0, remote software version OpenSSH_for_Windows_9.8 Win32-OpenSSH-GitHub debug1: compat_banner: match: OpenSSH_for_Windows_9.8 Win32-OpenSSH-GitHub pat OpenSSH* compat 0x04000000 debug2: fd 3 setting O_NONBLOCK debug1: Authenticating to localhost:22 as 'sftp_dy' debug3: record_hostkey: found key type ECDSA in file C:\\Users\\zwx1262540/.ssh/known_hosts:2 debug3: load_hostkeys_file: loaded 1 keys from localhost debug3: Failed to open file:C:/Users/zwx1262540/.ssh/known_hosts2 error:2 debug1: load_hostkeys: fopen C:\\Users\\zwx1262540/.ssh/known_hosts2: No such file or directory debug3: Failed to open file:C:/ProgramData/ssh/ssh_known_hosts error:2 debug1: load_hostkeys: fopen __PROGRAMDATA__\\ssh/ssh_known_hosts: No such file or directory debug3: Failed to open file:C:/ProgramData/ssh/ssh_known_hosts2 error:2 debug1: load_hostkeys: fopen __PROGRAMDATA__\\ssh/ssh_known_hosts2: No such file or directory debug3: order_hostkeyalgs: prefer hostkeyalgs: ecdsa-sha2-nistp384-cert-v01@openssh.com,ecdsa-sha2-nistp384 debug3: send packet: type 20 debug1: SSH2_MSG_KEXINIT sent debug3: receive packet: type 20 debug1: SSH2_MSG_KEXINIT received debug2: local client KEXINIT proposal debug2: KEX algorithms: curve25519-sha256,curve25519-sha256@libssh.org,ecdh-sha2-nistp256,ecdh-sha2-nistp384,ecdh-sha2-nistp521,diffie-hellman-group-exchange-sha256,diffie-hellman-group16-sha512,diffie-hellman-group18-sha512,diffie-hellman-group14-sha256,ext-info-c,kex-strict-c-v00@openssh.com debug2: host key algorithms: ecdsa-sha2-nistp384-cert-v01@openssh.com,ecdsa-sha2-nistp384,ssh-ed25519-cert-v01@openssh.com,ecdsa-sha2-nistp256-cert-v01@openssh.com,ecdsa-sha2-nistp521-cert-v01@openssh.com,sk-ssh-ed25519-cert-v01@openssh.com,sk-ecdsa-sha2-nistp256-cert-v01@openssh.com,rsa-sha2-512-cert-v01@openssh.com,rsa-sha2-256-cert-v01@openssh.com,ssh-ed25519,ecdsa-sha2-nistp256,ecdsa-sha2-nistp521,sk-ssh-ed25519@openssh.com,sk-ecdsa-sha2-nistp256@openssh.com,rsa-sha2-512,rsa-sha2-256 debug2: ciphers ctos: chacha20-poly1305@openssh.com,aes128-ctr,aes192-ctr,aes256-ctr,aes128-gcm@openssh.com,aes256-gcm@openssh.com debug2: ciphers stoc: chacha20-poly1305@openssh.com,aes128-ctr,aes192-ctr,aes256-ctr,aes128-gcm@openssh.com,aes256-gcm@openssh.com debug2: MACs ctos: umac-64-etm@openssh.com,umac-128-etm@openssh.com,hmac-sha2-256-etm@openssh.com,hmac-sha2-512-etm@openssh.com,umac-64@openssh.com,umac-128@openssh.com,hmac-sha2-256,hmac-sha2-512 debug2: MACs stoc: umac-64-etm@openssh.com,umac-128-etm@openssh.com,hmac-sha2-256-etm@openssh.com,hmac-sha2-512-etm@openssh.com,umac-64@openssh.com,umac-128@openssh.com,hmac-sha2-256,hmac-sha2-512 debug2: compression ctos: none,zlib@openssh.com,zlib debug2: compression stoc: none,zlib@openssh.com,zlib debug2: languages ctos: debug2: languages stoc: debug2: first_kex_follows 0 debug2: reserved 0 debug2: peer server KEXINIT proposal debug2: KEX algorithms: curve25519-sha256,curve25519-sha256@libssh.org,ecdh-sha2-nistp256,ecdh-sha2-nistp384,ecdh-sha2-nistp521,diffie-hellman-group-exchange-sha256,diffie-hellman-group16-sha512,diffie-hellman-group18-sha512,diffie-hellman-group14-sha256,ext-info-s,kex-strict-s-v00@openssh.com debug2: host key algorithms: rsa-sha2-512,rsa-sha2-256,ecdsa-sha2-nistp384,ssh-ed25519 debug2: ciphers ctos: chacha20-poly1305@openssh.com,aes128-ctr,aes192-ctr,aes256-ctr,aes128-gcm@openssh.com,aes256-gcm@openssh.com debug2: ciphers stoc: chacha20-poly1305@openssh.com,aes128-ctr,aes192-ctr,aes256-ctr,aes128-gcm@openssh.com,aes256-gcm@openssh.com debug2: MACs ctos: umac-64-etm@openssh.com,umac-128-etm@openssh.com,hmac-sha2-256-etm@openssh.com,hmac-sha2-512-etm@openssh.com,umac-64@openssh.com,umac-128@openssh.com,hmac-sha2-256,hmac-sha2-512 debug2: MACs stoc: umac-64-etm@openssh.com,umac-128-etm@openssh.com,hmac-sha2-256-etm@openssh.com,hmac-sha2-512-etm@openssh.com,umac-64@openssh.com,umac-128@openssh.com,hmac-sha2-256,hmac-sha2-512 debug2: compression ctos: none,zlib@openssh.com debug2: compression stoc: none,zlib@openssh.com debug2: languages ctos: debug2: languages stoc: debug2: first_kex_follows 0 debug2: reserved 0 debug3: kex_choose_conf: will use strict KEX ordering debug1: kex: algorithm: curve25519-sha256 debug1: kex: host key algorithm: ecdsa-sha2-nistp384 debug1: kex: server->client cipher: chacha20-poly1305@openssh.com MAC: <implicit> compression: none debug1: kex: client->server cipher: chacha20-poly1305@openssh.com MAC: <implicit> compression: none debug3: send packet: type 30 debug1: expecting SSH2_MSG_KEX_ECDH_REPLY debug3: receive packet: type 31 debug1: SSH2_MSG_KEX_ECDH_REPLY received debug1: Server host key: ecdsa-sha2-nistp384 SHA256:UyANwfU8ig+Uf3gKnpza2NfNH19MfjRQxURpwC7ou0U debug3: record_hostkey: found key type ECDSA in file C:\\Users\\zwx1262540/.ssh/known_hosts:2 debug3: load_hostkeys_file: loaded 1 keys from localhost debug3: Failed to open file:C:/Users/zwx1262540/.ssh/known_hosts2 error:2 debug1: load_hostkeys: fopen C:\\Users\\zwx1262540/.ssh/known_hosts2: No such file or directory debug3: Failed to open file:C:/ProgramData/ssh/ssh_known_hosts error:2 debug1: load_hostkeys: fopen __PROGRAMDATA__\\ssh/ssh_known_hosts: No such file or directory debug3: Failed to open file:C:/ProgramData/ssh/ssh_known_hosts2 error:2 debug1: load_hostkeys: fopen __PROGRAMDATA__\\ssh/ssh_known_hosts2: No such file or directory debug1: Host 'localhost' is known and matches the ECDSA host key. debug1: Found key in C:\\Users\\zwx1262540/.ssh/known_hosts:2 debug3: send packet: type 21 debug1: ssh_packet_send2_wrapped: resetting send seqnr 3 debug2: ssh_set_newkeys: mode 1 debug1: rekey out after 134217728 blocks debug1: SSH2_MSG_NEWKEYS sent debug1: Sending SSH2_MSG_EXT_INFO debug3: send packet: type 7 debug1: expecting SSH2_MSG_NEWKEYS debug3: receive packet: type 21 debug1: ssh_packet_read_poll2: resetting read seqnr 3 debug1: SSH2_MSG_NEWKEYS received debug2: ssh_set_newkeys: mode 0 debug1: rekey in after 134217728 blocks debug2: KEX algorithms: curve25519-sha256,curve25519-sha256@libssh.org,ecdh-sha2-nistp256,ecdh-sha2-nistp384,ecdh-sha2-nistp521,diffie-hellman-group-exchange-sha256,diffie-hellman-group16-sha512,diffie-hellman-group18-sha512,diffie-hellman-group14-sha256,ext-info-c,kex-strict-c-v00@openssh.com debug2: host key algorithms: ecdsa-sha2-nistp384-cert-v01@openssh.com,ecdsa-sha2-nistp384,ssh-ed25519-cert-v01@openssh.com,ecdsa-sha2-nistp256-cert-v01@openssh.com,ecdsa-sha2-nistp521-cert-v01@openssh.com,sk-ssh-ed25519-cert-v01@openssh.com,sk-ecdsa-sha2-nistp256-cert-v01@openssh.com,rsa-sha2-512-cert-v01@openssh.com,rsa-sha2-256-cert-v01@openssh.com,ssh-ed25519,ecdsa-sha2-nistp256,ecdsa-sha2-nistp521,sk-ssh-ed25519@openssh.com,sk-ecdsa-sha2-nistp256@openssh.com,rsa-sha2-512,rsa-sha2-256 debug2: ciphers ctos: chacha20-poly1305@openssh.com,aes128-ctr,aes192-ctr,aes256-ctr,aes128-gcm@openssh.com,aes256-gcm@openssh.com debug2: ciphers stoc: chacha20-poly1305@openssh.com,aes128-ctr,aes192-ctr,aes256-ctr,aes128-gcm@openssh.com,aes256-gcm@openssh.com debug2: MACs ctos: umac-64-etm@openssh.com,umac-128-etm@openssh.com,hmac-sha2-256-etm@openssh.com,hmac-sha2-512-etm@openssh.com,umac-64@openssh.com,umac-128@openssh.com,hmac-sha2-256,hmac-sha2-512 debug2: MACs stoc: umac-64-etm@openssh.com,umac-128-etm@openssh.com,hmac-sha2-256-etm@openssh.com,hmac-sha2-512-etm@openssh.com,umac-64@openssh.com,umac-128@openssh.com,hmac-sha2-256,hmac-sha2-512 debug2: compression ctos: none,zlib@openssh.com,zlib debug2: compression stoc: none,zlib@openssh.com,zlib debug2: languages ctos: debug2: languages stoc: debug2: first_kex_follows 0 debug2: reserved 0 debug3: send packet: type 5 debug3: receive packet: type 7 debug1: SSH2_MSG_EXT_INFO received debug3: kex_input_ext_info: extension server-sig-algs debug1: kex_ext_info_client_parse: server-sig-algs=<ssh-ed25519,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ssh-ed25519@openssh.com,sk-ecdsa-sha2-nistp256@openssh.com,rsa-sha2-512,rsa-sha2-256> debug3: kex_input_ext_info: extension publickey-hostbound@openssh.com debug1: kex_ext_info_check_ver: publickey-hostbound@openssh.com=<0> debug3: kex_input_ext_info: extension ping@openssh.com debug1: kex_ext_info_check_ver: ping@openssh.com=<0> debug3: receive packet: type 6 debug2: service_accept: ssh-userauth debug1: SSH2_MSG_SERVICE_ACCEPT received debug3: send packet: type 50 debug3: receive packet: type 7 debug1: SSH2_MSG_EXT_INFO received debug3: kex_input_ext_info: extension server-sig-algs debug1: kex_ext_info_client_parse: server-sig-algs=<ssh-ed25519,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ssh-ed25519@openssh.com,sk-ecdsa-sha2-nistp256@openssh.com,rsa-sha2-512,rsa-sha2-256> debug3: receive packet: type 51 debug1: Authentications that can continue: password debug3: start over, passed a different list password debug3: preferred publickey,keyboard-interactive,password debug3: authmethod_lookup password debug3: remaining preferred: ,keyboard-interactive,password debug3: authmethod_is_enabled password debug1: Next authentication method: password sftp_dy@localhost's password: debug3: send packet: type 50 debug2: we sent a password packet, wait for reply debug3: receive packet: type 51 debug1: Authentications that can continue: password Permission denied, please try again. sftp_dy@localhost's password: debug3: send packet: type 50 debug2: we sent a password packet, wait for reply debug3: receive packet: type 51 debug1: Authentications that can continue: password Permission denied, please try again.
最新发布
06-10
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值