说明
支持同一个密码转换为多种加密ASCII字符组合 。
一、使用示例 输入
输入密码:
编码
点击按钮
文章插图
解码
复制加密的密码(Copy按钮),粘贴在输入框(Paste),点击进行解码 。
二、编码
原理:生成小于10的随机数,把输入字符按条件加上对应的随机数和位置号,最后把生成字符+随机数生成密码输出 。
代码如下(示例仅使用2个随机数):
CString input = "123456";int num = strlen(input);char str[100];Rand1 = rand() % 8 + 1;Rand2 = rand() % 9;for (int i = 0; i < num + 1; i++){if (i < num){if (i % 2 == 0){ascii = (int)input[i] + Rand1 + i;}else if (i % 2 == 1){ascii = (int)input[i] + Rand2 + i;}if (ascii > 126){ascii = ascii - 126 + 32;}str[i] = (char)ascii;}else{str[i] = (char)(Rand1 + (rand() % 7 + 4) * 10);str[i + 1] = (char)(Rand2 + (rand() % 7 + 4) * 10);}}input.Format("%s", str);CString output = input.Left(num + 2);
二、解码
原理:解析密码中的随机数,按加密规则逆向解密 。
代码如下:
char str[100];int num = strlen(inputRaw); //inputRaw: CString,加密字符CString input = inputRaw.Right(2);Rand1 = input[0] % 10;Rand2 = input[1] % 10;input = inputRaw.Left(num - 2);for (int i = 0; i < num - 2; i++){if (i % 2 == 0){ascii = (int)input[i] - Rand1 - i;}else{ascii = (int)input[i] - Rand2 - i;}if (ascii < 33){ascii = ascii + 126 - 32;}str[i] = (char)ascii;}inputRaw.Format("%s", str);CString output = inputRaw.Left(num - 2);
总结
文章只提供加密的思路,可按照个人喜好进行修改,如增加多个随机数,或更换密码中解码随机数的位置等 。
【MFC密码加密生成小工具】由于使用随机数,同一密码可生成多个加密的字符串 。
- 中国导弹打得准,全因这位穿五块钱背心、破解了钱学森密码的老人 中国之最钱学森
- *火箱怎么做,逆战怎么开加密*火箱!
- 揭秘人类社会的三大密码:大洪水、外星文明与硅基生物 世界十大密码
- 郭富城“舞林密码”演唱会舞美揭秘打破吉尼斯的顶级现场 郭富城跳舞吉尼斯记录
- 《说文解字》传递的文化密码 历史之最近义词
- 破解敦煌壁画中的域外文明密码——由一场冷门绝学团队项目开题报告会说起 世界之最开题
- 【问题记录】postgreSQL使用默认密码导致kdevtmpfsi挖矿病毒注入
- chatgpt赋能python:Python强解WiFi密码:一种简单而有效的方
- chatgpt赋能python:Python解密码编程:解析密码学和Python
- 宇宙密码:科学家发现神秘图形,或隐藏着生命的终极法则 世界十大密码图案