[C/C++ 演算法]-純C++_字串XOR編解碼函數
本篇要分享純C++_字串XOR編解碼函數應用,有興趣的(C/P)同好,歡迎來(C/P)一下哈哈 ^ ^。
程式碼 |
#include <stdio.h> #include <stdlib.h> #include <string.h> char gchrxor[]="jashliao blog at the pixnet.net"; int intEncoder[1000]={-1}; int intDecoder[1000]={-1}; char chrDecoder[1000]; int XorEncoder(char *chrS) { int i,j; int intlenxor=0; int intlenS=0; intlenxor=strlen(gchrxor); intlenS=strlen(chrS); char chrinput=0; char chrxor=0; j=0; for(i=0;i<intlenS;i++) { chrinput=*(chrS+i); if(j<intlenxor) { chrxor=*(gchrxor+j); j++; } else { j=0; chrxor=*(gchrxor+j); } intEncoder[i]=chrinput^chrxor; } return intlenS; } void XorDecoder(int len) { int i,j; int intlenxor=0; int intlenS=len; intlenxor=strlen(gchrxor); char chrinput=0; char chrxor=0; j=0; for(i=0;i<intlenS;i++) { chrinput=intDecoder[i]; if(j<intlenxor) { chrxor=*(gchrxor+j); j++; } else { j=0; chrxor=*(gchrxor+j); } chrDecoder[i]=chrinput^chrxor; } } void main() { char chrtest[]="http://www.google.com"; int i=0; int intlenS=0; int data=-1; int j; intlenS=XorEncoder(chrtest); printf("in=%d\n",intlenS); FILE *pf='\0'; pf=fopen("url.txt","w"); for(i=0;i<intlenS;i++) { fprintf(pf,"%d,",intEncoder[i]); printf("%d,",intEncoder[i]); } fclose(pf); printf("\n"); pf='\0'; pf=fopen("url.txt","r"); j=0; while(fscanf(pf,"%d,",&data)!=EOF) { printf("%d,",data); intDecoder[j]=data; j++; } fclose(pf); printf("\n"); XorDecoder(j); printf("%s\n",chrDecoder); system("pause"); }
|
沒有留言:
張貼留言