/**习惯把密码明文存在本地文件中,这个小程序可以把存的密码以密文形式保存**/
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <time.h>
int chartoasc(char c);
int xor(int i);
char asctochar(int a);
int rand_num();
int encrypt(const char *org_pass,char *new_pass);
int decrypt(const char *new_pass,char *org_pass);
int main(int argc,char *argv[])
{
if(argc!=2)
{
printf("参数输入有误!\n");
printf("usage:<pass flag >\nflag=1:加密;flag=2:解密\n");
return -1;
}
int flag = 0;
int len = 0;
int i = 0;
int ret = 0;
char password[20];
char new_pass[50];
char org_pass[50];
int test1 = 0;
int test2 = 0;
char test3 = 0;
char *p = NULL;
bzero(password,sizeof(password));
bzero(new_pass,sizeof(new_pass));
bzero(org_pass,sizeof(org_pass));
flag = atoi(argv[1]);
if(flag == 1)
{
printf("请输入需要加密的密码:");
scanf("%s",password);
ret = encrypt(password,&new_pass);
if(ret)
{
printf("密码加密失败!\n");
return -1;
}
printf("新密码[%s]\n",new_pass);
}
else if(flag ==2)
{
printf("请输入需要解密的密码:");
scanf("%s",password);
ret = decrypt(password,&org_pass);
if(ret)
{
printf("获取原密码失败!\n");
return -1;
}
printf("原密码[%s]\n",org_pass);
}
else
{
printf("加密标志输入如有误!\n");
return -1;
}
return 0;
}
/**将字符转换为ASCII值**/
int chartoasc(char c)
{
int i= 0;
i = c;
return i;
}
/**将ASCII进行异或运算,产生新的ASCII值**/
int xor(int i)
{
int m = 27;
int result = 0;
if(59==i || 100==i)
{
return i;
}
result = i^m;
return result;
}
/**将ASCII值转换为字符**/
char asctochar(int a)
{
char c;
c = a;
return c;
}
/**输入原密码产生新的密码**/
int encrypt(const char *org_pass,char *new_pass)
{
char org_password[50];
char new_password[50];
int len = 0;
int i = 0;
int asc = 0 ;
char ch = 0;
int x = 0;
bzero(org_password,sizeof(org_password));
bzero(new_password,sizeof(new_password));
strcpy(org_password, org_pass);
len = strlen(org_password);
for(i=0 ; i<len ; i++)
{
ch = org_password[i];
asc = chartoasc(ch);
x = xor(asc);
new_password[i] = asctochar(x);
}
strcpy(new_pass,new_password);
return 0;
}
/**输入加密后的密码返回原密码**/
int decrypt(const char *new_pass,char *org_pass)
{
char new_password[50];
char org_password[50];
char ch;
int a = -1;
int len =0;
int i=0;
int x = -1;
bzero(new_password,sizeof(new_password));
bzero(org_password,sizeof(org_password));
strcpy(new_password,new_pass);
len = strlen(new_password);
for(i=0;i<len;i++)
{
ch = new_password[i];
a = chartoasc(ch);
x = xor(a);
org_password[i]=asctochar(x);
}
strcpy(org_pass,org_password);
return 0;
}相关推荐
【编程入门】C语言字符串的加密和解密算法!
在本实例中要求设计一个加密和解密算法。在对一个指定的字符串加密之后,利用解密函数能够对密文解密,显示明文信息。 加密的方式是将字符串中每个字符加上它在字符串中的位置和一个偏移值 5。以字符串“mrsoft”为例,第一个字符“m”在字符串中的位置为 0,那么它对应的密文是“'m'+0+5",即 r。 算法思想 在 main() 函数中使用 while 语句设计一个无限循环,并定义两个字符数组,用来保存,明文和密文字符串,在首次循环中要求用户输入字符串,进行将明文加密成密文的操作, 之后的操作则是根.
恺撒密码代码简单实现加密解密(C语言)
加密代码 #include <stdio.h> #include <string.h> #define MAX 100 int main() { char C[MAX]; char S[MAX]; int K=3,i; printf("Enter passage\n"); gets(S); for(i=0; S[i]!...
C语言实现栅栏密码:从古典密码学入门编程逻辑与算法
加密算法是信息安全的基础,其核心原理是通过特定规则对信息进行变换,以实现保密性。置换密码作为古典密码学的重要分支,通过改变字符排列顺序而非字符本身来隐藏信息内容。栅栏密码正是置换密码的典型代表,它采用“之”字形路径对明文进行重排,算法直观且易于实现。在技术价值上,这类基础密码算法虽不具备现代安全性,却是理解复杂加密技术(如AES、RSA)中置换、混淆等核心概念的绝佳教学案例。从工程实践角度,用C语言实现栅栏密码能有效锻炼数组操作、循环控制、字符串处理和内存管理等底层编程能力。本文以栅栏密码为例,详细拆解其加
C语言基本加密解密
基本加密解密 对于位运算来说,由于两次异或运算可以将值还原这个特性,所以经常使用异或进行加密解密运算,如下: 0 ^ 0 = 0 0 ^ 0 = 0 1 ^ 0 = 1 1 ^ 0 = 1 0 ^ 1 = 1 1 ^ 1 = 0 1 ^ 1 = 0 0 ^ 1 = 1 根据上面结果无论两个char还是两个int或者别的类型,甚至两个不同类型、不同长度的数据两次异或后都可以还原,这就为加密解密提供了理论保障。密码可以是一个数值,只要将需要加密的内容的每个字节与这个数值异或即可,但采用字符串作为密码更
密码解密 - 支持在线评测+三语言AC题解(Python/Java/Cpp)
本题可以通过 “密码本” 的映射规则,将 “密文” 中的数字或数字+星号的组合替换成对应的字母即可。,这段字符串是通过一个特殊的 “密码本” 加密的。“密码本” 的映射规则如下:字母。注意:映射规则保证是唯一的,即每个字母只会被映射到唯一的数字或数字+星号的组合。现在 LYA 需要你的帮助,将这段 “密文” 解密并输出明文。输出一行,包含一个字符串,表示解密后的明文。输出替换后的字符串即为解密后的明文。LYA 收到了一段加密后的字符串。,表示 LYA 收到的 “密文”。输入一行,包含一个字符串。
Matplotlib图片尺寸调整全攻略:从figsize到savefig的实战技巧
在数据可视化与科学计算中,图形尺寸控制是影响图表可读性与专业度的基础环节。其核心原理在于协调逻辑尺寸(英寸)与物理输出(像素)的映射关系,这直接决定了信息呈现的清晰度与布局合理性。从技术价值看,精准的尺寸控制能提升图表在不同媒介(如学术论文、报告、网页)中的适配性,避免显示不全、模糊失真等常见问题。在应用场景上,无论是Jupyter Notebook中的交互探索、自动化报告的批量生成,还是满足严格出版要求的插图制作,都需要掌握对应的尺寸调整策略。本文聚焦于matplotlib中的figsize参数、rcPa
对字符串进行加密C语言代码,c语言实现对密码(字符串)进行加密,并解密
int chartoasc(char c);int xor(int i);char asctochar(int a);int rand_num();int encrypt(const char *org_pass,char *new_pass);int decrypt(const char *new_pass,char *org_pass);int main(int argc,char *argv...
Matlab实现PSO-TCN-LSTM-Attention粒子群算法优化时间卷积长短期记忆神经网络融合注意力机制多变量时间序列预测的详细项目实例
这些数据包含了随时间变化她动态信息,具有显著她趋势她、周期她和季节她特征。该模型她核心优势在她其能够自适应地学习数据中她多层次时序信息,捕捉时间序列中她长短期依赖关系,从而提高预测她准确她和可靠她。本项目旨在实她一个基她PTO-TCN-LTTM-TFSttfntion她多变量时间序列预测模型,通过粒子群优化算法优化时间卷积长短期记忆神经网络,并融合注意力机制,提高模型她预测精度和稳定她。本项目模型她实她分为多个阶段,首先她数据预处理,接着她PTO优化,然后她TCN和LTTM网络她构建她训练。
凯撒密码C语言去掉空格字符,凯撒密码C语言实现
《凯撒密码C语言实现》由会员分享,可在线阅读,更多相关《凯撒密码C语言实现(8页珍藏版)》请在人人文库网上搜索。1、凯撒密码是一种非常古老的加密方法, 相传当年凯撒大地行军打仗时为了保证自己的命令不 被敌军知道,就使用这种特殊的方法进行通信,以确保信息传递的安全。他的原理很简单, 说到底就是字母于字母之间的替换。下面让我们看一个简单的例子: “baidu”用凯撒密码法 加密后字符串变为“edlgx...
关于使用EB tresos出现无法激活的情况解决
我在安装eb studio时就是在激活方面有问题导致无法使用,下面讲解出现了什么问题以及我如何去解除的。EB安装完成时需要激活才能使用的,不然都打开或者建立不了工程,一直都是报的dns服务器错误,好的,那我改dns服务器地址。填写dns服务器地址,也可以换成别的,自己百度一下适合自己的。这是解决方案哈哈哈哈。
DIY T12烙铁头驱动难题:用几个电容二极管,搞定NMOS上管驱动(附Multisim仿真)
本文详细介绍了如何利用电荷泵电路解决DIY T12烙铁头驱动中的NMOS上管驱动难题。通过巧妙组合电容和二极管,构建低成本高效的升压电路,实现栅极高压驱动需求。文章包含具体电路设计、元件选型建议、实际搭建注意事项以及Multisim仿真验证,为电子爱好者提供了一套完整的解决方案。
字符串分段加密
/*分段加密 1、欲加密的字符串str ,加密的密码encryptStr 2、将encryptStr 每个字符 异或 str 每个字符 */ #include #include #include //1、分段加密 //普通加密 void encrypt(char *str) { if (str == NULL) return; for (char *
关于无障碍适配的笔记
针对无障碍兼容性的笔记,针对wcg2.0/2.1
大一C语言总结贴(持更) Part 9 解密凯撒密码
【问题描述】凯撒生活在充满危险和阴谋的年代。为了生存,他首次发明了密码,用于军队的消息传递。假设你是凯撒军团中的一名军官,需要把凯撒发送的消息破译出来、并提供给你的将军。消息加密的办法是:对消息原文中的每个字母,分别用该字母之后的第5个字母替换(例如:消息原文中的每个字母A都分别替换成字母F),其他字符不 变, 并且消息原文的所有字母都是大写的。要求编程将输入的密文译回原文。 【输入形式】一个字符串,可能包含空格,以换行结尾。字符串长度不超过500。 【输出形式】解密后的字符串。 【样例输入】 MJQQ.
AI编码规则:从提示工程到自动化,提升大模型生成代码质量
在软件工程领域,代码质量是保障软件可维护性、安全性和团队协作效率的核心。其背后遵循着从基础语法规范到架构设计原则的一系列工程实践。随着大语言模型(LLM)在代码生成任务中的广泛应用,如何确保AI生成的代码符合这些工程标准,成为一个关键的技术挑战。这涉及到将人类工程师积累的最佳实践,转化为机器可理解、可执行的明确约束。通过系统化的**编码规则**定义与集成,例如构建涵盖安全、风格、架构的多层次规则集,并将其融入**提示工程**或自动化工作流,可以显著引导AI产出更健壮、规范的代码。这种方法的价值在于,它能将模
计算分子相似度(摩根分子指纹计算)
import numpy as np import pandas as pd import seaborn as sns import matplotlib as plt from rdkit.Chem import Draw from rdkit.Chem import AllChem as Chem from rdkit.Chem import PandasTools from rdkit import DataStructs data = pd.read_csv(r'47_covidLead.csv'
字符串加密
/************************************************ *文件名:passwd.h *创建者:ycj *创建时间:2015-3-23 *文件说明:通过一种规则将字符串进行加密和解密 *************************************************/ #include #include #include
【AI应用实战-claude】在飞书上接入claudecode进行远程使用(十三)
本文介绍了三种将ClaudeCode接入飞书的方案,包括官方飞书CLI工具(推荐)、cc-connect中转工具和MCP协议集成。官方飞书CLI适合自动化办公场景,通过简单配置即可实现消息发送和文档管理;cc-connect适用于远程调用Claude功能,通过飞书群聊触发响应;MCP协议则适合开发者构建复杂工作流。文章提供了详细的操作步骤,并针对不同使用场景给出了选择建议。
C 加密的 继续优化。。
#pragma warning(disable : 4996) #include <stdio.h> #include <stdlib.h> #include <string.h> #define M 1000 void shangeJiaMi(char* q, int yihang); void shangeJieMi(char* q, int yihang); void kaisaJiaMi(char* q, int yidong); void kaisaJieM.
廖雪峰Python教程[完整版]
廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白
VC中sqlite的使用
在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示
go语言实现Sm2加解密(附带源码)
go语言实现Sm2加解密(附带源码)
SIMATIC S7-1200, S7-1500 PID 控制[手册]
SIMATIC S7-1200, S7-1500 PID 控制[手册]
Playfair加密算法(C 实现)
主要函数 1、Creat_Key(char* s,int L, char Matrix[5][5]) 生成密钥Matrix矩阵 2、Encrypt(char Matrix[5][5],int L, char* s, char *s0, bool reverse) 根据密钥矩阵加密或解密 加密:s为明文,s0为密文字符串存储位置,reverse=0 解密:s为密文,s0为明文字符串存储位置,reverse=1 注意事项 1、字符串只能含有字母 2、已禁用字母j/J 3、字符均以大写形式处理(已自动转换,输入时
IMSL CNL 7.0.0 (x86-64)Crack
IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件
C 之 文件加解密
#define _CRT_SECURE_NO_WARNINGS #include #include #include //文件加密 void crpypt(char normal_path[],char crypt_path[],char pwd[]){ //打开文件 FILE *normal_fp = fopen(normal_path, "r"); FILE *crypt_fp = fo
文件加解密,文件操作
1、fseek,ftell,fread,fwrite(简单文件加密) #define _CRT_SECURE_NO_WARNINGS //去掉安全检查 #include #include /*读取文件大小*/ int getfilesize(char *path) { FILE *pf = fopen
C语言文件的存储和处理实验报告,c语言文件处理实验报告(6页)-原创力文档...
精选文档PAGEPAGE 1—文件处理创建时间:2016-5-27实验题目文件处理实验时间201实验地点DS1408实验成绩实验性质□验证性 □设计性 √综合性教师评价:□算法/实验过程正确; □源程序/实验内容提交 □程序结构/实验步骤合理;□实验结果正确; □语法、语义正确; □报告规范;其他:评价教师签名:一、实验目的1、掌握字符如何在文件中读取...
【网络安全实验报告】实验三:古典加密算法的实现
本文摘要:实验通过C语言实现凯撒密码和矩阵换位密码算法。凯撒密码采用字母位移加密(k=3),加解密函数互为逆运算;矩阵换位密码通过3×4矩阵重排字符(明文"ENGINEERING"补A后加密为"NIEGERNENAIG")。实验成功对"Thisisanewterm"进行加解密验证,并处理了边界条件(如密钥取模、非字母字符保留等)。两种密码均体现古典密码特点:操作简单但安全性有限,易受统计分析攻击。完整代码已通过百度网盘分享。
4106



被折叠的 条评论
为什么被折叠?



