1.å
³äºCè¯è¨çå å¯
2.cè¯è¨å®ç°å¯ç å å¯
3.c 语言常用的码加密加密算法——MD5
å ³äºCè¯è¨çå å¯
'a'çASCç æ¯
'b'çASCç æ¯
'c'çASCç æ¯
... ...
'z'çASCç æ¯
ææåå¯æç¸å¯¹åº
å¦ææï¼"abc"
å¯æï¼"zyw"
å½ch1 = 'a'æ¶ï¼ch2 = 'z'
ch1 - = + - ch2
- = + - = 0
å½ch1 = 'b'æ¶ï¼ch2 = 'y'
ch1 - = + - ch2
- = + - = 1
å½ch1 = 'c'æ¶ï¼ch2 = 'w'
ch1 - = + - ch2
- = + - = 2
ch1 - = + - ch2è¿å®é ä¸æ¯ææä¸å¯æç对åºå ³ç³»ï¼ä¹å°±æ¯ä»çç®æ³
ä½ å¯ä»¥å¯¹ææå»è®¾å®ä¸ä¸ªå¯¹åºå ³ç³»ï¼å°±å¯ä»¥å¾å°ä¸åçå¯æ
cè¯è¨å®ç°å¯ç å å¯
unsigned char* encrypt(unsigned char* psw, int enc) {
int sum = 0, i;
if (enc) {
for (i = 0; i < 6; i++) {
psw[i] -= ;
sum += psw[i];
}
psw[6] = (unsigned char) sum;
psw[7] = 0;
}
else {
for (i = 0; i < 6; i++) {
sum += psw[i];
psw[i] += ;
}
if ((unsigned char)sum != psw[6]) {
printf("Bad password\n");
psw[0] = 0;
return psw;
}
else {
psw[6] = 0;
}
}
for (i = 0; i < 3;i++) {
unsigned char t = psw[i];
psw[i] = psw[5-i];
psw[5-i] = t;
}
return psw;
}
int main()
{
unsigned char psw[];
scanf("%s", psw);
printf("encode to:%s\n", encrypt(psw, 1));
printf("decode to:%s\n", encrypt(psw, 0));
return 0;
}
c 语言常用的加密算法——MD5
在C语言中,常用的码加密加密算法主要包括AES、RSA、码加密MD5、码加密SHA-1及Base编码。码加密最新版微测试源码
AES加密算法是码加密sockettools源码一种对称加密算法,广泛应用于数据加密。码加密通过OpenSSL库在C语言中实现AES加密。码加密
RSA加密算法为非对称加密算法,码加密使用两把不同的码加密密钥进行加密与解密,是码加密最成熟且常用的非对称加密算法。同样使用OpenSSL库在C语言中实现RSA加密。码加密
MD5算法作为加密散列函数,码加密brogue 源码产生位散列值,码加密广泛应用于C语言中。码加密通过OpenSSL库实现MD5加密。
SHA-1算法全称为Secure Hash Algorithm 1,strchar源码用于数字签名、验证、消息摘要等,C语言中通过OpenSSL库实现SHA-1加密。voltdb源码
Base编码虽非加密算法,但用于隐藏信息,C语言中通过OpenSSL库进行Base编码与解码。
实现这些算法时通常利用OpenSSL库,因其提供了高效实现,避免了重复开发。
MD5算法在C语言中的实现示例如下:
#include
#include md5.h>
int main() {
char *str = "Hello, world!";
unsigned char digest[MD5_DIGEST_LENGTH];
MD5((unsigned char*) str, strlen(str), digest);
printf("MD5 hash of \"%s\": ", str);
for (int i = 0; i < MD5_DIGEST_LENGTH; i++) {
printf("%x", digest[i]);
}
printf(" ");
return 0;
}
通过OpenSSL库中的MD5函数,传入字符串与长度,将结果存储在数组中,然后打印数组内容即为MD5散列值。