==========================vernam.h=========================#ifndef _VERNAM_H#define _VERNAM_H#define LOCK(c, k) ((c) ^ (k))#define UNLOCK(c, k) ((c) ^ (k))#endif==========================vernam.cpp=== 展开
==========================vernam.h=========================#ifndef _VERNAM_H#define _VERNAM_H#define LOCK(c, k) ((c) ^ (k))#define UNLOCK(c, k) ((c) ^ (k))#endif==========================vernam.cpp=========================#include <stdio.h>#include <string.h>#include <windows.h>#include "vernam.h"int vernam_encrypt(char *plaintext, char *ciphertext, int len, char enkey){ int i = 0;for(i = 0;i <len;i++) { ciphertext[i] = LOCK(plaintext[i], enkey);} return i - 1;}int vernam_decrypt(char *ciphertext, char *plaintext, int len, char dekey){ int i = 0;for(i = 0;i <len;i++) { plaintext[i] = UNLOCK(ciphertext[i], dekey);} return i - 1;}void main(){ char src[] = "我爱你!!";char des[100] = {0};char key = 'i';printf("Vernam 加密算法:\n");printf("starting encrypt...\n");vernam_encrypt(src, des, strlen(src), key);printf("\t明文是: %s\n", src);printf("\t密钥是: %d\n", key);printf("\t密文是: %s\n", des);printf("starting decrypt...\n");vernam_decrypt(des, src, strlen(des), key);printf("\t密文是: %s\n", des);printf("\t密钥是: %d\n", key);printf("\t明文是: %s\n", src);} 收起