数据加密编程
例如:简单的移位加密可以这样
FILE*fp=fopen("test.txt","r");
FILE*fp1=fopen("new.txt","w");
while((c=fgetc(fp))!=EOF)
fputc(c+1,fp1);//逐个读取全部字符,ASCII值+1并保存到另一个文件
然后可以remove("test.txt");//删除文件
或者读取new.txt再写回test.txt
解密就是ASCII值-1
❷ C语言,数据加密
#include<stdio.h>
int encrypt(int c);
void main()
{
int pwd[5]={1,2,3,4,5};
int newpwd[5];
int i;
for(i=0;i<5;i++)
{
newpwd[i]=encrypt(pwd[i]);//每位数字都加6,然后用和除以8的余数代替该数字
}
i=newpwd[0];newpwd[0]=newpwd[4];newpwd[4]=i;//交换第一位和第五位
i=newpwd[1];newpwd[1]=newpwd[3];newpwd[3]=i;//交换第二位和第四位
//输出检查
printf("old password:");
for(i=0;i<5;i++)
{
printf("%d",pwd[i]);
}
printf("\n new password:");
for(i=0;i<5;i++)
{
printf("%d",newpwd[i]);
}
printf("\n");
}
int encrypt(int c)
{
return (c+6)%8;
}
❸ c语言编写程序,并加密数据
#include<stdio.h>
void passwordnum(long a);
int main(void)
{
long num;
while(!scanf("%d",&num))
{
while(getchar()!='\n'); //把数字后面的不纯净输入吸收掉
printf("Input Error! please retry anain.\n");
}
passwordnum(num);
printf("\n");
return 0;
}
void passwordnum(long a)
{
if(a>0)
{
passwordnum(a/10);
printf("%d",(a+2)%10);
}
else if(a<0)
{
printf("-");
a=-a;
passwordnum(a);
}
}
❹ 请给出c语言文件加密的编程
参考如下代码:
#include<stdio.h>
#include<stdlib.h>
#defineDWORDunsignedlong
#defineBYTEunsignedchar
#definefalse0
#definetrue1
intmain(intargc,char*argv[])
{
FILE*hSource;
FILE*hDestination;
DWORDdwKey=0xfcba0000;
char*pbBuffer;
DWORDdwBufferLen=sizeof(DWORD);
DWORDdwCount;
DWORDdwData;
if(argv[1]==0||argv[2]==0)
{
printf("missingargument! ");
returnfalse;
}
char*szSource=argv[1];
char*szDestination=argv[2];
hSource=fopen(szSource,"rb");//打开源文件.
hDestination=fopen(szDestination,"wb");//打开目标文件
if(hSource==NULL){printf("openSourceFileerror!");returnfalse;}
if(hDestination==NULL){printf("openDestinationFileerror!");returnfalse;}
//分配缓冲区
pbBuffer=(char*)malloc(dwBufferLen);
do{
//从源文件中读出dwBlockLen个字节
dwCount=fread(pbBuffer,1,dwBufferLen,hSource);
//加密数据
dwData=*(DWORD*)pbBuffer;//char*TOdword
dwData^=dwKey;//xoroperation
pbBuffer=(char*)&dwData;
//将加密过的数据写入目标文件
fwrite(pbBuffer,1,dwCount,hDestination);
}while(!feof(hSource));
//关闭文件、释放内存
fclose(hSource);
fclose(hDestination);
printf("%sisencryptedto%s ",szSource,szDestination);
return0;
❺ C语言编程:三分加密
#include<stdlib.h>
#include<string.h>
#include<stdio.h>
intThree_Parties(char*data,intdata_length)
{
typedefunsignedcharUCHAR;
inti,index;
char*dict;
UCHAR*polybius_index;
//检查讯息的合法性
for(i=0;i<data_length;i++)
{
if(data[i]>='a'&&data[i]<='z')
{
//小写转化为大写
data[i]&=0xDF; //小写字母第5位置为0即变为大写
//data[i]-='a'-'A';//这种写法也可以,但没有上一种效率高
}
elseif(data[i]<'A'||data[i]>'Z')
{
//包含非字母的字符
return1;
}
}
dict="LEOCBFQSTNARGHJUWXDVIKMPYZ/";
polybius_index=(UCHAR*)malloc(3*data_length);
for(i=0;i<data_length;i++)
{
index=strchr(dict,data[i])-dict;
polybius_index[i]=index/9;
index%=9;
polybius_index[i+data_length]=index/3;
polybius_index[i+2*data_length]=index%3;
}
for(i=0;i<3*data_length;i+=3)
{
index=polybius_index[i]*9+polybius_index[i+1]*3+polybius_index[i+2];
data[i/3]=dict[index];
}
free(polybius_index);
return0;
}
intmain(intargc,char*argv[])
{
chardata[]="helloworld";
if(Three_Parties(data,strlen(data))==0)
{
printf("%s",data);
}
else
{
printf("inputerror");
}
return0;
}
//加密部分还可以改成建索引表,那样效率会更高,但代码稍微复杂些。
❻ 请问如何用vb编程调用sql server2005加密算法,实现数据加密,带界面
for i = 1 to len
p_pass = string(asc(mid(parent.sle_2.text,i,1))) + p_pass
next
//的意思是从左到右依次取出parent.sle_2.text内的字符,将他们转换为asc码后,从右到左存入p_pass中(先取出的先存进)
解密就是,把asc码转换为字符,再倒序就是密码了.
关键在于找出数字密码中正确的asc码.
理论上ASCⅡ码是从0-127,但是实际上只用判断33-126。
密码的asc码范围在33-126中,所以只用判断每两位的首位是否大于1,大于1则取两位,否则取3位,然后从剩下位置的开始从新判断
定义数组a //用于存入数字密码
定义数组b //用于保存结果,
定义ii = 0 //数组b下标,初始化为0
定义函数f(i) //参数i为数组a下标
f(0) //调用函数,初始参数为0
f(i) //函数实现
{
判断a[i]是否为空,不为空则
{
判断如果a[i]>1
b[ii]=a[i]+a[i+1]
ii++
f(i+1)
否则
b[ii]=a[i]+a[i+1]+a[i+2]
ii++
f(i+2)
}
否则a[i]为空,退出函数
}
得到数组b每个元素保存的就是正确的asc码,
将asc码转换为对应字符,倒序,就是你要的结果了.
由于不清楚使用的什么语言,所以我没有直接写出代码,不过上面的解释已经够清楚了吧,
另:这个加密算法非常简单,
但是如果不是我想的这么简单,mid(),asc(),string()被重载过了,很遗憾你必须找出他们的重载函数,才能对症下药,我这里的方法就要改变了
❼ C# 安卓通用的数据加密方法
不是很清楚。C#目前制作的程序无法再安卓上运行的,但是单论加密方法的话是不涉及到编程语言的。写入数据库的加密方法有MD5,MD5这种加密是不可逆的,也就是说只有别人输入的密码通过MD5和数据库的MD5比对,相同才可以,但是一旦加密是无法还原的
如果要想还原的话可以看看哈希加密法。或者自己造加密算法
❽ 求C语言程序设计 数据加密详解~!!!
#include<stdio.h>
#define
N
8
void
main()
{
int
code,count,i,temp;
int
key[N];
printf("请输入密码:");
scanf("%d",&code);
//各位交换
i=0;
count=0;
while(code!=0)
{
key[i]=code%10;
code
/=
10;
i++;
count++;
}
//各位
加5,并对其取余
for(i=0;i<count;i++)
{
key[i]
+=
5;
key[i]
%=
10;
}
//数字第一位与最后一位互换
temp
=
key[0];
key[0]
=
key[count-1];
key[count-1]
=
temp;
for(i=0;i<count;i++)
{
printf("%d
",key[i]);
}
}
//晕...你是北大青鸟的吧..我昨天刚做了这个项目.刚好发给你了..
❾ 用C语言编程实现如下功能按照如下方法加密数据。
#include <stdio.h>
int power(int x,int y)
{
int w;
w=1;
do {
if (y==0) break;
if (y%2)
{
w*=x;
y--;
}
else
{
x*=x;
y/=2;
}
}while (y);
return (w);
}
int main()
{
int i,o,w,n,j;
printf("Please input a integer:");
scanf("%d",&i);
w=0;
o=0;
do{
n=i;
i=i/10;
n=(n十2);
n=n*power(10,w);
o十=n;
w十十;
}while(i);
printf("The code is:%d\n",o);
getchar();getchar();
retern (0);
}
❿ 加密 编程
给你个例子,差不多照都做就行了: RSA:
//待加密的明文
string originText;
//公钥
string publicKey;
byte[] cryp_byte;
RSACryptoServiceProvider rsaReceive = new RSACryptoServiceProvider();
RSACryptoServiceProvider rsaSend = new RSACryptoServiceProvider();
加密:
originText ="???";
//接收方先生成公钥, 并将此公钥公开
//参数false 表示只生成公钥, 如果为true, 则同时生成公钥和私钥.
publicKey = rsaReceive.ToXmlString(false);
//发送方接收公钥, 并用此公钥加密数据
rsaSend.FromXmlString(publicKey);
//发送方执行加密.
//第二个参数指示是否使用OAEP, 如果使用, 则程序必须运行在Windows XP 及以上版本的
//系统中. 无论true 或false, 解密时必须跟加密时的选择相同.
cryp_byte= rsaSend.Encrypt(System.Text.Encoding.UTF8.GetBytes(originText), false);
data_encyp.Text = Encoding.Default.GetString(cryp_byte);
//接收方用自己的私钥解密
解密:
byte[] b_OriginText = rsaReceive.Decrypt(cryp_byte, false);