暴力破解练习(一)信用卡号的验证
当你输入信用卡号码的时候,有没有担心输错了而造成损失呢?其实可以不必这么担心,因为并不是一个随便的信用卡号码都是合法的,
它必须通过Luhn算法来验证通过。
该校验的过程:
1、从卡号最后一位数字开始,逆向将奇数位(1、3、5等等)相加。
2、从卡号最后一位数字开始,逆向将偶数位数字,先乘以2(如果乘积为两位数,则将其减去9),再求和。
3、将奇数位总和加上偶数位总和,结果应该可以被10整除。
例如,卡号是:5432123456788881则,奇数位和=35
偶数位乘以2(有些要减去9)的结果:1 6 2 6 1 5 7 7,求和=35。
最后35+35=70 可以被10整除,认定校验通过。
请编写一个程序,从键盘输入卡号,然后判断是否校验通过。通过显示:“成功”,否则显示“失败”。
比如,用户输入:356827027232780
程序输出:成功
【参考测试用例】
356406010024817 成功
358973017867744 成功
356827027232781 失败
306406010024817 失败
358973017867754 失败
#include<iostream>
#include<string>
using namespace std;
int main()
{string s = "358973017867754";int sum1 = 0,sum2=0;for (int i = s.length()-1; i >= 0;i--){//奇数int j = i + 1;if (j % 2 != 0){//字符串转换为整数sum1 += s.at(i)-48; }else{int a = 0;a = (s.at(i)-48) * 2;if (9 < a && a<100){a -= 9;}sum2 += a;}}int sum3 = (sum1 + sum2) % 10;if (sum3== 0){cout << "成功" << endl;}else{cout << "失败" << endl;}return 0;
}
sum1 += s.at(i)-48;
eg:str=1234
暴力破解练习(一)信用卡号的验证相关推荐
- 蓝桥杯之暴力破解、枚举
美国数学家维纳(N.Wiener)智力早熟,11岁就上了大学. 他曾在1935~1936年应邀来中国清华大学讲学. 一次,他参加某个重要会议,年轻的脸孔引人注目. 于是有人询问他的年龄,他回答说: & ...
- 暴力破解登录密码(登录批量发包)
除了Fortify和Appscan之外,公司还有使用Burp Suit工具对项目代码进行安全测试,例如会对项目进行 暴力破解登录密码(登录批量发包),而项目中确实存在该漏洞,现已修复,在这里做总结如下 ...
- Python黑客攻防(十四)暴力破解FTP口令
注:本篇文章为个人学习笔记仅供学习交流,请勿用于非法用途. 参考:<Python绝技:运用Python成为顶级黑客>. 前言: 从安全方面考虑,网站允许匿名FTP访问似乎是很疯狂的做法.然 ...
- Hydra暴力破解工具的用法
目录 Hydra 常见参数 破解SSH 破解FTP 破解HTTP 破解3389远程登录 Kali自带密码字典 dirb dirbuster fern-wifi metasploit wfuzz Hyd ...
- IT知识百科:什么是暴力破解?
暴力破解是一种常见的网络安全攻击方法,它利用计算机程序自动尝试大量的密码组合来破解密码.这种攻击方法通常用于获取未经授权的访问权限,如入侵网络系统或个人账户.在本文中,我们将探讨暴力破解的原理.工具和 ...
- OD初探 2 :暴力破解: TraceMe的破解
工具: FishC OD(点我下载) 样本程序:TraceMe(点我下载) 一. 观察程序 && 函数猜测 打开TraceMe,我们可以看到,弹出的登陆框: 首先输入伪造的用户名与密码 ...
- 用kali Linux暴力破解Windows RDP(3389号端口)
RDP是Windows的远程桌面协议. 我们要暴力破解3389号端口的前提是对方的3389号端口是开放的,不过大多数情况下电脑是默认关闭的,即使有远程协助的需要也不一定非得要用到3389号端口,开启不 ...
- Java黑皮书课后题第6章:**6.31(金融应用:信用卡号的合法性验证)和**6.32 编写程序,提示用户输入一个long型整数的信用卡号码,显示这个数字是合法的还是非法的
6.31(金融应用:信用卡号的合法性验证)编写程序,提示用户输入一个long型整数的信用卡号码,显示这个数字是合法的还是非法的 6.31题目 题目描述 破题 6.31代码 6.32 代码 运行实例 6 ...
- 第十届 蓝桥杯样题 —— 信用卡号验证
[编程大题]信用卡号验证 当你输入信用卡号码的时候,有没有担心输错了而造成损失呢?其实可以不必这么担心,因为并不是一个随便的信用卡号码都是合法的,它必须通过Luhn算法来验证通过. 该校验的过程: 1 ...
最新文章
- 没想到,阿里工程师每天必刷的网站是......
- Android 音频播放——AudioTrack直接播PCM、MediaPlayer播媒体文件可以是audio
- spark如何防止内存溢出_Spark 理论基石 —— RDD
- 关于 HeartBleed 安全漏洞的 2 张漫画
- zlib / win10 下 vs2019 编译 zlib 的方法
- ASP.NET Core Web 支付功能接入 微信-扫码支付篇
- Python面试常用二十题总结
- np.cross函数详解
- 刚学vue,写的一个入门demo,时光网
- 王道训练营3月10日
- 应用层协议 ——— HTTP协议
- 【icourse163】学习python爬虫的代码整理
- 【kubernetes/k8s源码分析】CNI calico ipam源码分析
- 利用Windows的IFELanguage接口,取得拼音笔划数其实很简单!
- PostgreSQL数据库扩展包——原理CreateExtension扩展控制文件解析
- 在Windows下使用Python编程
- 51单片机红外电子密码锁【红外对管矩阵键盘数码管LCD1602显示模块】
- 晶振01——晶振分类和无源晶振的设计
- windows10防火墙设置
- 【PKI技术】第二弹 — PKI在电信运营商的应用
热门文章
- 【论文泛读62】HybridQA:通过表格和文本数据进行多跳问答的数据集
- Unity 创建Sprite导致的内存溢出奔溃问题
- Modbus协议(翻自wiki)
- 关于ckeditor富文本编辑器上传图片返回“不正确的服务器响应”的解决方案
- inux下服务器心跳集群脚本
- 【机器学习】Rasa NLU以及Rasa Core概念和语法简介(超详细必看)
- An error occurred at line: [14] in the generated java file:
- Metamask不能访问以太坊账户?隐私模式!
- 【RocketMQ】消息的存储设计
- 盘后复盘 20160622