當前位置:首頁 » 密碼管理 » 字元串加密函數

字元串加密函數

發布時間: 2022-11-07 14:20:10

① 如何對字元串進行MD5加密,用c語言實現,給出源代碼和加密函數

UINT4 state[4]; /*存儲原始信息的bits數長度,不包括填充的bits,最長為2^64 bits*/ UINT4 count[2]; /*存放輸入的信息的緩沖區,512bits*/ unsigned char buffer[64];} MD5_CTX;static void MD5Transform(UINT4[4], unsigned char[64]); static void Encode(unsigned char *, UINT4 *, unsigned int); static void Decode(UINT4 *, unsigned char *, unsigned int);/*用於bits填充的緩沖區,當欲加密的信息的bits數被512除其餘數為448時,需要填充的bits的最大值為512=64*8*/ static unsigned char PADDING[64] = { 0x80, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0};/*接下來的這幾個宏定義是md5演算法規定的,就是對信息進行md5加密都要做的運算*/

② 如何對字元串進行MD5加密,用C語言實現,給出源代碼和加密函數

/*四個32bits數,用於存放最終計算得到的消息摘要.當消息長度>512bits時,也用於存放每個512bits的中間結果*/ UINT4 state[4]; /*存儲原始信息的bits數長度,不包括填充的bits,最長為2^64 bits*/ UINT4 count[2]; /*存放輸入的信息的緩沖區,512bits*/ unsigned char buffer[64];} MD5_CTX;static void MD5Transform(UINT4[4], unsigned char[64]); static void Encode(unsigned char *, UINT4 *, unsigned int); static void Decode(UINT4 *, unsigned char *, unsigned int);/*用於bits填充的緩沖區,當欲加密的信息的bits數被512除其餘數為448時,需要填充的bits的最大值為512=64*8*/ static unsigned char PADDING[64] = { 0x80, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0};/*接下來的這幾個宏定義是md5演算法規定的,就是對信息進行md5加密都要做的運算*/ #define F(x, y, z) (((x) & (y)) | ((~x) & (z))) #define G(x, y, z) (((x) & (z)) | ((y) & (~z))) #define H(x, y, z) ((x) ^ (y) ^ (z)) #define I(x, y, z) ((y) ^ ((x) | (~z))) #define ROTATE_LEFT(x, n) (((x) << (n)) | ((x) >> (32-(n)))) #define FF(a, b, c, d, x, s, ac) {\ (a) += F ((b), (c), (d)) + (x) + (UINT4)(ac);\ (a) = ROTATE_LEFT ((a), (s));\ (a) += (b);\}#define GG(a, b, c, d, x, s, ac) {\ (a) += G ((b), (c), (d)) + (x) + (UINT4)(ac);\ (a) = ROTATE_LEFT ((a), (s));\ (a) += (b);\}#define HH(a, b, c, d, x, s, ac) {\ (a) += H ((b), (c), (d)) + (x) + (UINT4)(ac);\ (a) = ROTATE_LEFT ((a), (s));\ (a) += (b);\}#define II(a, b, c, d, x, s, ac) {\ (a) += I ((b), (c), (d)) + (x) + (UINT4)(ac);\

③ 如何利用MySQL資料庫自帶加密函數進行加密

首先,先介紹下加密函數,PASSWORD(string)函數可以對字元串string進行加密,代碼如下:
SELECT
PASSWORD('you');
如下圖所示:
執行第一步的SQL語句,查詢結果是一串字元串,並且PASSWORD(string)函數加密是不可逆轉,
如下圖所示:
另外一個加密函數MD5(string),主要針對普通的數據進行加密,代碼如下:
SELECT
MD5('hai');
如下圖所示:
最後一個加密函數ENCODE(string,pass),可以使用字元串pass來加密字元串string。首先要創建一個資料庫表t_pass_info,代碼如下:
CREATE
TABLE
t_pass_info(
id
int(10),
pass_info
blob
);
如下圖所示:
然後,向這個資料庫表插入一條數據,代碼如下:
INSERT
INTO
t_pass_info(id,pass_info)
VALUES
(1,ENCODE('dong','bb'));
如下圖所示:
6
查看插入資料庫表t_pass_info記錄,代碼如下:
SELECT
*
FROM
t_pass_info;
如下圖所示:
7
MySQL自帶還有一個解密函數DECODE(str,pass_str),可以使用字元串pass_str來為str解密,代碼如下:
SELECT
DECODE(ENCODE('dong','aa'),'aa');
如下圖所示:

④ ASP字元串加密解密

<%
'ASP 字元串加密函數EncryptText()
'strEncryptionKey:加密key字元串,用以區別不同模塊加密演算法
'strTextToEncrypt:欲加密字元串
Function EncryptText(ByVal strEncryptionKey, ByVal strTextToEncrypt)
Dim outer, inner, Key, strTemp
For outer = 1 To Len(strEncryptionKey)
key = Asc(Mid(strEncryptionKey, outer, 1))
For inner = 1 To Len(strTextToEncrypt)
strTemp = strTemp & Chr(Asc(Mid(strTextToEncrypt, inner, 1)) Xor key)
key = (key + Len(strEncryptionKey)) Mod 256
Next
strTextToEncrypt = strTemp
strTemp = ""
Next
EncryptText = strTextToEncrypt
End Function

response.write EncryptText("mima","zifuchuan")
%>

⑤ C++ string字元串如何加密

C++ string類重載了[]運算符,因此,可以象數組一樣方便的引用string中的每一個元素,進行數據修改。如,字元串簡單加密方法,A-B, B-C, C-D。。。Z-A的實現代碼如下:

#include<iostream>
#include<string>
usingnamespacestd;
intmain()
{
strings;
cin>>s;//輸入字元串
for(inti=0;i<s.length();i++)//遍歷字元串s.length()為輸入串的長度
{
if(s[i]>='A'&&s[i]<'Z')//處理A-Y
s[i]+=1;
elseif(s[i]=='Z')//處理Z
s[i]='A';
//非大寫字元,不處理
}
cout<<s<<endl;//輸出字元串
return0;
}
運行結果:
AsDfGXyZ
BsEfHYyA

⑥ C語言字元串加密

問題不小,你表面用的是C
但是,好多地方不符合C的語法
,,比如:
for
(int
i=0;
str[i]
!=
'\0';
i++)
還有,就是你好像沒有弄清楚
,你要做什麼似的,有好多無用的東西,
就像你的函數里的,key
,雖然你提到key了,但是你根本沒有使用key,你只是使用45來進行加密,,還有就是一個文件
的大小,是不確定的,你用一個100個字元的字元串來存,有點那個不安全了,,如果稍長一點就會出問題,產生運行時錯誤。其實你這個加密和解密是一個可逆過程,用一個函數,就可以了,具體你想要的也不是太明白,就給你弄了一個簡單一點加密和解密程序
,輸入輸出不是同一個文件
,不知道是不是你想要的。
#include

#include

#include

void
Decrypt()
{
char
fname[FILENAME_MAX];
char
fname2[FILENAME_MAX];
FILE*
fp;
FILE*
fp1;
int
key;
char
c;
printf("輸入要加/解密文件的路徑:\n");
scanf("%s",
fname);
printf("請輸入密鑰:\n");
scanf("%d",&key);
strcpy(fname2,fname);
strcat(fname2,".txt");
if(
(fp
=
fopen(fname,"r+"))
==
NULL)
{
printf("error");
exit(1);
}
if(
(fp1
=
fopen(fname2,"w+"))
==
NULL)
{
printf("error");
exit(1);
}
while(
(c
=
fgetc(fp))
!=
EOF)
{
c
=
c^key;
fputc(c,fp1);
}
fcloseall();
}
int
main()
{
Decrypt();
return
0;
}
如果想看一些好一點的加密演算法
,我這里有一些,聯系我發給你
,,

⑦ 如何加密C++ string字元串

#include
#define MAX 100//字元串的最大長度
using namespace std;

void encrypter ( char *, int );
void decrypter (char *, int);

int main()
{
char string[MAX] = "\0";
int key;

/* Encrypter */
cout<<"**** ENCRIPTER ****"<<endl;
cout<<"Insert the secret sentence: ";
gets(string);//讀取字元串

cout<<"Insert the incripting code : ";
cin>>key;//讀取加密碼

encrypter ( string, key );//加密
cout<<"The incrypted sentence is: "<<string<<endl<<endl;

/* Decrypter */
cout<<"**** DECRYPTER ****"<<endl;
cout<<"Insert the code: ";
cin>>key;//輸入加密碼

decrypter( string, key );//解密
cout<<"The decrypted sentence is: "<<string<<endl<<endl;

return 0;
}

/* 加密函數 */
void encrypter ( char *pstr, int key )
{
while ( *pstr != '\0' )
{
*pstr += key;
pstr++;
}

}

/* 解密函數 */
void decrypter ( char *pstr, int key )
{
while ( *pstr != '\0' )
{
*pstr -= key;
pstr++;
}
}

⑧ C語言字元串按要求加密 求教

void encryp(char *plain,char *cipher)這個函數你寫復雜了,如下就可以了——

void encryp(char *plain,char *cipher){
int i;

for(i=0;plain[i];i++)

cipher[i]=plain[i]-24;

cipher[i]='\0';

}

這樣加密就完結了。

⑨ C語言怎麼加密字元

#include<stdio.h>
#include<string.h>
intmain()
{
charstr[]="00000",str2[]="00000",*p=str,*p2=str2;
printf("輸入5個字母:");
while(*p!=0)
{
scanf("%c",p);
if(*p==' ')
continue;
if(*p<'A'||(*p>'Z'&&*p<'a')||*p>'z')//輸入驗證,必須是字母
{
printf("只能輸入字母,請重新輸入 ");
p=str;
p2=str2;
fflush(stdin);//輸入有錯重新輸入前清空緩沖區。fflush屬於c擴展函數,正常使用沒問題,如需在linuxggc上使用,考慮多次調用getchar函數來清空
}
else
{
*p2=(*p)+4;
if(*p2>90&&*p2<97)//大寫字母加4,最大位不超出
*p2='A'+(*p2-90)-1;
if(*p2>122)//小寫字母加4,最大位不超出
*p2='a'+(*p2-122)-1;
p2++;
p++;
}
}

printf("原字元串為:%s 加密後的字元串為:%s ",str,str2);
return0;
}

⑩ c語言編寫字元串加密函數 不要寫得太難啊

#include<stdio.h>
#include<ctype.h>

char*encrypt(char*text){
charc;
char*p=text;
for(;*text;++text){
c=*text;
if(isdigit(c))
*text='0'+'9'-c;
elseif(islower(c)){
c=c+3;
if(c>'z')
c=c-26;
*text=c;
}elseif(isupper(c)){
c=c+3;
if(c>'Z')
c=c-26;
*text=c;
}
}
returnp;
}

intmain(){
chartext[100];
printf("輸入明文:");
scanf("%s",text);
printf("密文:%s ",encrypt(text));
getchar();
}

熱點內容
內置存儲卡可以拆嗎 發布:2025-05-18 04:16:35 瀏覽:335
編譯原理課時設置 發布:2025-05-18 04:13:28 瀏覽:378
linux中進入ip地址伺服器 發布:2025-05-18 04:11:21 瀏覽:612
java用什麼軟體寫 發布:2025-05-18 03:56:19 瀏覽:32
linux配置vim編譯c 發布:2025-05-18 03:55:07 瀏覽:107
砸百鬼腳本 發布:2025-05-18 03:53:34 瀏覽:943
安卓手機如何拍視頻和蘋果一樣 發布:2025-05-18 03:40:47 瀏覽:739
為什麼安卓手機連不上蘋果7熱點 發布:2025-05-18 03:40:13 瀏覽:803
網卡訪問 發布:2025-05-18 03:35:04 瀏覽:511
接收和發送伺服器地址 發布:2025-05-18 03:33:48 瀏覽:371