數據加密編程
例如:簡單的移位加密可以這樣
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);