精华内容
下载资源
问答
  • C语言文件加密解密(简单)

    千次阅读 2020-02-24 14:33:53
    小程序 //#include<stdio.h> //#define key ox8a; //main() //{ // char c,filename[20];...// //printf("请输入待加密的文件名:\n"); // //scanf("%s",filename); // fp1=fopen("1.txt","r"); // fp2...

    1. 文本内容为英文的文件加密解密小程序

    加密:

        #include <stdio.h>
        #define key ox8a;
        int main(void) {
            char c, filename[20];
            FILE * fp1, * fp2;
    
            printf("请输入待加密的文件名:\n");
            scanf("%s", filename);
            fp1 = fopen(filename, "r");   //以只读的方式打开
            fp2 = fopen("secret.txt", "w");	 //以写的方式打开
            do {
                c = fgetc(fp1);
                if (c >= 32 && c <= 126) {
                    c = c - 32;
                    c = 126 - c;
                }
                if (c != -1)
                    fprintf(fp2, "%c", c);
            } while (c != -1);
            fclose(fp1);
            fclose(fp2);
        }
    

    解密:

        #include <stdio.h>
        #include <string.h>
        int main(void) {
            char c, filename[20];
            char verification_code[20];
            FILE * fp1, * fp2;
            printf("请输入待解密文件名:\n");
            scanf("%s", filename);
            printf("请输入验证码:\n");
            scanf("%s", verification_code);
            if (strcmp(verification_code, "shan") == 0) {
                fp1 = fopen(filename, "r");
                fp2 = fopen("public.txt", "w");
                do {
                    c = fgetc(fp1);
                    if (c >= 32 && c <= 126) {
                        c = 126 - c;
                        c = 32 + c;
                    }
                    if (c != -1)
                        fprintf(fp2, "%c", c);
                }
                while (c != -1);
            } else {
                printf("验证码错误!请重新输入:\n");
                scanf("%s", filename);
            }
        }
    

    2. 文本内容为中文汉字的文件加密解密小程序

    加密:

        #include <stdio.h>
        #define KEY 1
        int main(void) {
            char c, filename[20],t;
            FILE * fp1, * fp2;
    
            printf("请输入待加密的文件名:\n");
            scanf("%s", filename);
            fp1 = fopen(filename, "r");   //以只读的方式打开
            fp2 = fopen("secret.txt", "w");	 //以写的方式打开
      		do{
    			c=fgetc(fp1);
    			t = c;            //考虑判断条件
    			c = c ^ KEY;	
    			if(t!=-1){
    				fprintf(fp2,"%c",c);				
    			}
    		}while(t!=-1);
            fclose(fp1);
            fclose(fp2);
        }
    

    解密:

        #include <stdio.h>
        #include <string.h>
        #define KEY 1
        int main(void) {
            char c, filename[20],t;
            char verification_code[20];
            FILE * fp1, * fp2;
            printf("请输入待解密文件名:\n");
            scanf("%s", filename);
            printf("请输入验证码:\n");
            scanf("%s", verification_code);
            if (strcmp(verification_code, "open") == 0) {
                fp1 = fopen(filename, "r");
                fp2 = fopen("public.txt", "w");
    			do{
    				c=fgetc(fp1);
    				t = c;				//考虑判断条件
    				c = c ^ KEY;
    				if(t!=-1){
    					fprintf(fp2,"%c",c);			
    				}
    			}while(t!=-1);
            } else {
                printf("验证码错误!请重新输入:\n");
                scanf("%s", filename);
            }
        }
    

    删除指定文件(可用于删除 public 文件)

    remove(函数)

    #include<stdio.h>
    int main(){
        char filename[80];
        printf("The file to delete:");
        gets(filename);
        if( remove(filename) == 0 )        //调用并检查是否删除
            printf("Removed %s.", filename);
        else
            perror("remove"); 	//输出存在error中的内容
    }
    
    展开全文
  • 源代码,win32控制台,阐述文件加密解密功能,有注释,主要功能有文件的加密与解密和修改密码
  • 主要为大家详细介绍了C语言实现任何文件加密解密功能,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
  • C语言实现AES加密解密,加密结果与Java中AES的ECB模式,NoPadding补码方式结果一致;支持中文加密,但是限定密钥32位,加密内容16位;若需要变化可作为参考
  • #include<stdio.h>...解密\n3.退出\n"); printf("请输入您所需功能对应的序号:(例:如需调用加密功能,便打出1即可)\n"); for(;;)//直到输入3时才会退出 { scanf("%d",&i); .

     

    本程序是一个c语言的大作业的一部分

    是简单的基于给定密钥实现的加密解密程序

    希望能给后来人一些参考

     

    文件的传输会有明文和密文的区别,明文发送是不安全的。本题目实现对文件的加密和解密操作,采用的加密算法是根据密钥将明文中的字母置换为其它字母,所有字母不区分大小写,不考虑除英文字母外的字符。例如:明文是:They will arrive tomorrow,密钥k=Monday,具体加密过程如下:

    ① 设置英文字母与0到25有如下的对应关系:

    A

    B

    C

    D

    E

    F

    G

    H

    I

    J

    K

    L

    M

    N

    O

    P

    Q

    R

    S

    T

    U

    V

    W

    X

    Y

    Z

    0

    1

    2

    3

    4

    5

    6

    7

    8

    9

    10

    11

    12

    13

    14

    15

    16

    17

    18

    19

    20

    21

    22

    23

    24

    25

    ②依据上述对应关系将明文和密钥转化为一组数字:

      k=(12,14,13,3,0,24)

      m=(19,7,4,24,22,8,11,11,0,17,17,8,21,4,19,14,12,14,17,17,14,22)

    ③将明文数字依据密钥长度分段,并逐一与密钥数字相加(模26),得到密文数字,即:

     

     

    19

    7

    4

    24

    22

    8

    11

    11

    0

    17

    17

    8

    21

    4

    19

    14

    12

    14

    17

    17

    14

    22

    12

    14

    13

    3

    0

    24

    12

    14

    13

    3

    0

    24

    12

    14

    13

    3

    0

    24

    12

    14

    13

    3

    5

    21

    17

    1

    22

    6

    23

    25

    13

    20

    17

    6

    7

    18

    6

    17

    12

    12

    3

    5

    1

    25

    C=(5,21,17,1,22,6,23,25,13,20,17,6,7,18,6,17,12,12,3,5,1,25)

    ④依据字母和数字对应关系将密文数字转换为字母串,即密文为:

      c=FVRBWGXZNURGHSGRMMDFBZ

    解密过程与加密过程类似,采用的是模26减运算。

    功能要求:

    主函数提供功能菜单供用户选择,用户可以选择调用以下各个功能,也可以选择退出程序。系统应提供以下功能:

    1. 加密:对给定文件file1.txt内容按照密钥k=Monday进行加密,加密后密文写到文件file2.txt中;
    2. 解密:对给定密文文件file3.txt 利用密钥k=Monday进行解密,解密后的明文存放在文件file4.txt中;

     

     

     

    #include<stdio.h>
    
    int key[6]={12,14,13,3,0,24};//定义密钥 
    int complex();
    int simplify();
    
    int main()
    {
    	int i=0,j=0;
    	printf("功能如下\n1.加密\n2.解密\n3.退出\n");
    	printf("请输入您所需功能对应的序号:(例:如需调用加密功能,便打出1即可)\n");
    	for(;;)//直到输入3时才会退出 
    	{
    		scanf("%d",&i);
    		if(i==1)j=complex();
    		if(i==2)j=simplify();
    		if(i==3)break;
    		if(j==1)printf("\n功能实现成功\n");
    		if(j==0)printf("\n功能实现失败\n"); 
    	}
    	return 0;
    }
    int complex() //加密 
    {
    	FILE *pin, *pout;
    	pin = fopen("file1.txt","r");
    	pout= fopen("file2.txt","w"); 
    	int k=0;
    	char Ming[1000],Mi[1000],*p=Ming,*q=Mi; 
    	fgets(Ming,1000,pin); //puts(Ming);
    	for(;*p!='\0';p++)
    	{
    		if(*p>='a'&&*p<='z')
    		{
    			*q=(*p-97+key[k])%26+65;//	printf(" %d %d %c\n",*(key+k),k,*q);
    			k=k+1;q++; 
    			if(k==6)k=0;
    		}
    		if(*p>='A'&&*p<='Z')
    		{
    			*q=(*p-65+key[k])%26+65;//	printf(" %d %d %c\n",*(key+k),k,*q);
    			k=k+1;q++;
    			if(k==6)k=0;
    		}
    	}
    	*q='\0';
    	//printf("密文为:");	//puts(Mi);
    	fputs(Mi,pout); 
    	fclose(pin);
    	fclose(pout);
    	return 1;
     } 
     int simplify()//解密 
     {	
     	FILE *pin, *pout;
    	pin = fopen("file3.txt","r");
    	pout= fopen("file4.txt","w");//打开文件 
    	int k=0; //定义密钥 //k的意义是让密匙能够循环使用 
    	char Ming[1000],Mi[1000],*p=Mi,*q=Ming;//定义密文,明文字符串 
    	fgets(Mi,1000,pin);//从文件3读取密文 
    	for(;*p!='\0';p++)//解密 
    	{ 
    		if(*p>='A'&&*p<='Z')
    		{
    			*q=(*p-65+26+26-*(key+k))%26+65;//printf(" %d %d %c\n",*(key+k),k,*q);//检验key出没出问题 	
    			k=k+1;q++;
    			if(k==6)k=0;//这两行代码让密钥循环使用 
    		}	
    	}
    	*q='\0';//使字符串结束 
    	fputs(Ming,pout);//puts(Ming);检验输出结果//导出加密结果 
    	fclose(pin);
    	fclose(pout); //关闭两个文件
    	return 1;
     }
    展开全文
  • 简单编程,C语言实现对信息的加密解密,简单实用
  • NULL 博文链接:https://enefry.iteye.com/blog/1178394
  • 在数据的加解密领域,算法分为对称密钥与非对称密钥两种。对称密钥与非对称密钥由于各自的特点,所应用的领域是不尽相同的。对称密钥加密算法由于其速度快,一般用于整体数据的加密,而非对称密钥加密算法的安全...

    一、前言

        数据通信时我们经常用到加密,尤其在单片机开发中计算能力有限,因此找到一个适合单片机加密的方式格外的重要,今天介绍一下XTEA加密算法。

        在数据的加解密领域,算法分为对称密钥与非对称密钥两种。对称密钥与非对称密钥由于各自的特点,所应用的领域是不尽相同的。对称密钥加密算法由于其速度快,一般用于整体数据的加密,而非对称密钥加密算法的安全性能佳,在数字签名领域得到广泛的应用。

        TEA算法是由剑桥大学计算机实验室的David Wheeler和Roger Needham于1994年发明,TEA是TIny EncrypTIon Algorithm的缩写,以加密解密速度快,实现简单著称。TEA算法每一次可以操作64bit(8byte),采用128bit(16byte)作为key,算法采用迭代的形式,推荐的迭代轮数是64轮,最少32轮。为解决TEA算法密钥表攻击的问题,TEA算法先后经历了几次改进,从XTEA到BLOCK TEA,直至最新的XXTEA。XTEA也称做TEAN,它使用与TEA相同的简单运算,但四个子密钥采取不正规的方式进行混合以阻止密钥表攻击。Block TEA算法可以对32位的任意整数倍长度的变量块进行加解密的操作,该算法将XTEA轮循函数依次应用于块中的每个字,并且将它附加于被应用字的邻字。

                                                   1024px-XTEA_InfoBox_Diagram.svg

    二、XTEA加密中的ECB和CBC

                                          

     

    CBC模式的全称是Cipher Block Chaining模式(密文分组链接模式),之所以叫这个名字,是因为密文分组像链条一样相互连接在一起。在CBC模式中,首先将明文分组与前一个密文分组进行XOR运算,然后再进行加密。

    CBC模式加解密过程如下:

                   

    三、XTEA  C语言实现

    代码来自mbed TLS

    /* Implementation that should never be optimized out by the compiler */
    static void mbedtls_zeroize( void *v, size_t n ) {
        volatile unsigned char *p = v; while( n-- ) *p++ = 0;
    }
    
    /*
     * 32-bit integer manipulation macros (big endian)
     */
    #ifndef GET_UINT32_BE
    #define GET_UINT32_BE(n,b,i)                            \
    {                                                       \
        (n) = ( (uint32_t) (b)[(i)    ] << 24 )             \
            | ( (uint32_t) (b)[(i) + 1] << 16 )             \
            | ( (uint32_t) (b)[(i) + 2] <<  8 )             \
            | ( (uint32_t) (b)[(i) + 3]       );            \
    }
    #endif
    
    #ifndef PUT_UINT32_BE
    #define PUT_UINT32_BE(n,b,i)                            \
    {                                                       \
        (b)[(i)    ] = (unsigned char) ( (n) >> 24 );       \
        (b)[(i) + 1] = (unsigned char) ( (n) >> 16 );       \
        (b)[(i) + 2] = (unsigned char) ( (n) >>  8 );       \
        (b)[(i) + 3] = (unsigned char) ( (n)       );       \
    }
    #endif
    
    void mbedtls_xtea_init( mbedtls_xtea_context *ctx )
    {
        memset( ctx, 0, sizeof( mbedtls_xtea_context ) );
    }
    
    void mbedtls_xtea_free( mbedtls_xtea_context *ctx )
    {
        if( ctx == NULL )
            return;
    
        mbedtls_zeroize( ctx, sizeof( mbedtls_xtea_context ) );
    }
    
    /*
     * XTEA key schedule
     */
    void mbedtls_xtea_setup( mbedtls_xtea_context *ctx, const unsigned char key[16] )
    {
        int i;
    
        memset( ctx, 0, sizeof(mbedtls_xtea_context) );
    
        for( i = 0; i < 4; i++ )
        {
            GET_UINT32_BE( ctx->k[i], key, i << 2 );
        }
    }
    

    XTEA-ECB

    /*
     * XTEA encrypt function
     */
    int mbedtls_xtea_crypt_ecb( mbedtls_xtea_context *ctx, int mode,
                        const unsigned char input[8], unsigned char output[8])
    {
        uint32_t *k, v0, v1, i;
    
        k = ctx->k;
    
        GET_UINT32_BE( v0, input, 0 );
        GET_UINT32_BE( v1, input, 4 );
    
        if( mode == MBEDTLS_XTEA_ENCRYPT )
        {
            uint32_t sum = 0, delta = 0x9E3779B9;
    
            for( i = 0; i < 32; i++ )
            {
                v0 += (((v1 << 4) ^ (v1 >> 5)) + v1) ^ (sum + k[sum & 3]);
                sum += delta;
                v1 += (((v0 << 4) ^ (v0 >> 5)) + v0) ^ (sum + k[(sum>>11) & 3]);
            }
        }
        else /* MBEDTLS_XTEA_DECRYPT */
        {
            uint32_t delta = 0x9E3779B9, sum = delta * 32;
    
            for( i = 0; i < 32; i++ )
            {
                v1 -= (((v0 << 4) ^ (v0 >> 5)) + v0) ^ (sum + k[(sum>>11) & 3]);
                sum -= delta;
                v0 -= (((v1 << 4) ^ (v1 >> 5)) + v1) ^ (sum + k[sum & 3]);
            }
        }
    
        PUT_UINT32_BE( v0, output, 0 );
        PUT_UINT32_BE( v1, output, 4 );
    
        return( 0 );
    }

    XTEA-CBC

    /*
     * XTEA-CBC buffer encryption/decryption
     */
    int mbedtls_xtea_crypt_cbc( mbedtls_xtea_context *ctx, int mode, size_t length,
                        unsigned char iv[8], const unsigned char *input,
                        unsigned char *output)
    {
        int i;
        unsigned char temp[8];
    
        if( length % 8 )
            return( MBEDTLS_ERR_XTEA_INVALID_INPUT_LENGTH );
    
        if( mode == MBEDTLS_XTEA_DECRYPT )//decrypt
        {
            while( length > 0 )
            {
                memcpy( temp, input, 8 );
                mbedtls_xtea_crypt_ecb( ctx, mode, input, output );
    
                for( i = 0; i < 8; i++ )
                    output[i] = (unsigned char)( output[i] ^ iv[i] );
    
                memcpy( iv, temp, 8 );
    
                input  += 8;
                output += 8;
                length -= 8;
            }
        }
        else
        {
            while( length > 0 )
            {
                for( i = 0; i < 8; i++ )
                    output[i] = (unsigned char)( input[i] ^ iv[i] );
    
                mbedtls_xtea_crypt_ecb( ctx, mode, output, output );
                memcpy( iv, output, 8 );
    
                input  += 8;
                output += 8;
                length -= 8;
            }
        }
    
        return( 0 );
    }

    四、测试

    测试代码:

    /*
     * XTEA tests vectors (non-official)
     */
    
    static const unsigned char xtea_test_key[6][16] =
    {
       { 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b,
         0x0c, 0x0d, 0x0e, 0x0f },
       { 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b,
         0x0c, 0x0d, 0x0e, 0x0f },
       { 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b,
         0x0c, 0x0d, 0x0e, 0x0f },
       { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
         0x00, 0x00, 0x00, 0x00 },
       { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
         0x00, 0x00, 0x00, 0x00 },
       { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
         0x00, 0x00, 0x00, 0x00 }
    };
    
    static const unsigned char xtea_test_pt[6][8] =
    {
        { 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, 0x48 },
        { 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41 },
        { 0x5a, 0x5b, 0x6e, 0x27, 0x89, 0x48, 0xd7, 0x7f },
        { 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, 0x48 },
        { 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41 },
        { 0x70, 0xe1, 0x22, 0x5d, 0x6e, 0x4e, 0x76, 0x55 }
    };
    
    static const unsigned char xtea_test_ct[6][8] =
    {
        { 0x49, 0x7d, 0xf3, 0xd0, 0x72, 0x61, 0x2c, 0xb5 },
        { 0xe7, 0x8f, 0x2d, 0x13, 0x74, 0x43, 0x41, 0xd8 },
        { 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41 },
        { 0xa0, 0x39, 0x05, 0x89, 0xf8, 0xb8, 0xef, 0xa5 },
        { 0xed, 0x23, 0x37, 0x5a, 0x82, 0x1a, 0x8c, 0x2d },
        { 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41 }
    };
    
    /*
     * Checkup routine
     */
    int mbedtls_xtea_self_test( int verbose )
    {
        int i, ret = 0;
        unsigned char buf[8];
        mbedtls_xtea_context ctx;
    
        mbedtls_xtea_init( &ctx );
        for( i = 0; i < 6; i++ )
        {
            if( verbose != 0 )
                mbedtls_printf( "  XTEA test #%d: ", i + 1 );
    
            memcpy( buf, xtea_test_pt[i], 8 );
    
            mbedtls_xtea_setup( &ctx, xtea_test_key[i] );
            mbedtls_xtea_crypt_ecb( &ctx, MBEDTLS_XTEA_ENCRYPT, buf, buf );
    
            if( memcmp( buf, xtea_test_ct[i], 8 ) != 0 )
            {
                if( verbose != 0 )
                    mbedtls_printf( "failed\n" );
    
                ret = 1;
                goto exit;
            }
    
            if( verbose != 0 )
                mbedtls_printf( "passed\n" );
        }
    
        if( verbose != 0 )
            mbedtls_printf( "\n" );
    
    exit:
        mbedtls_xtea_free( &ctx );
    
        return( ret );
    }
    

    运行:

     

    展开全文
  • C语言文件加密解密软件

    千次阅读 2017-03-10 14:42:19
    文件加密解密是常用的一个功能,可以很好的保护你的隐私内容;...解密文件:打开需要解密的文件,输入密钥,将解密的文件保存;修改密码:可以临时修改软件的使用密码,但是软件重启后会被重置;退出程序:完成
    文件加密解密是常用的一个功能,可以很好的保护你的隐私内容;本软件简单的实现了文件加密解密的功能。
    

    为了防止别人随意使用软件,软件本身也有一个密码,必须输入密码才能使用软件。

    软件的功能有:
    • 加密文件:打开需要加密的文件,输入密钥,将加密的文件保存;
    • 解密文件:打开需要解密的文件,输入密钥,将解密的文件保存;
    • 修改密码:可以临时修改软件的使用密码,但是软件重启后会被重置;
    • 退出程序:完成工作后退出。

    软件使用流程

    1) 启动软件,输入密码

    软件启动后,必须输入密码才能使用(默认密码为 123456)。用户有3次输入密码的机会,连续3次输入错误软件将自动退出。截图如下:
    图1  软件启动时校验密码

    2) 密码校验正确,显示功能菜单

    密码校验完成后,会显示功能菜单,让用户选择要进行的操作,如下图所示:
    图2  软件菜单

    3) 用户选择要进行的操作

    ①文件加密:输入1并回车,进入文件加密功能,要求用户输入要加密的文件名、密钥、保存加密内容的文件。

    在D盘下创建文件demo.txt,输入一些文本,对该文件进行加密。加密成功后,用记事本打开加密的文件,看到的全部是乱码,截图如下:
    图3  加密成功

    如果输入的文件路径错误,或者打开/创建文件失败,将导致加密失败,截图如下:
    图4  加密失败

    注意:文件名要包含路径,只有文件名表示当前程序所在文件夹下的文件。

    ②文件解密:回到主菜单,输入2并回车,进入文件解密功能,同样要求用户输入要解密的文件、密钥和保存解密内容的文件。输入上次加密的文件,将解密后的文件保存到demo2.txt,解密成功后打开demo2.txt,可以看到被还原的具有可读性的内容。截图如下:
    图5  解密文件成功

    ③修改密码:回到主菜单,输入3并回车,进入密码修改功能。修改密码前要求用户输入原来的密码,并两次输入新密码,保证不会误输入。截图如下:
    图6  修改密码成功

    ④退出系统:回到主菜单,输入0退出软件。

    对于该软件,我们提供了详细的说明文档,包括软件的使用、设计思路、重要知识点以及常用的编程技巧,并且在代码中做了详细的注释。

    软件、说明文档及源码下载地址: http://pan.baidu.com/s/1mgl2DF6     提取密码:v41l
    展开全文
  • 接下来以 c 语言 为例讲解一种简单的加密解密以及暴力破解字符串的方法,带您走进加密解密技术的大门。 先讲一下凯撒加密,凯撒密码相传是古罗马凯撒大帝用来保护重要军情的加密系统。它是一种置换密码,通过将字母...
  • C语言实现AES加密解密

    2017-06-26 10:57:27
    实现C语言的AES加密解密。包含各种加密模式,ECB、CBC
  • C语言文件加密解密

    2019-08-23 18:32:33
    #include "stdafx.h" #pragma warning( disable : 4996) int _tmain(int argc, _TCHAR* argv[]) { //保存待加密文件名的数组 ... //待加密文件的指针 char dstFileName[256] = { 0 }; FILE* srcFilep ...
  • C语言实现加密解密功能 附带详细注释源码

    万次阅读 多人点赞 2018-04-23 22:00:30
    接下来以 c 语言 为例讲解一种简单的加密解密以及暴力破解字符串的方法,带您走进加密解密技术的大门。先讲一下凯撒加密,凯撒密码相传是古罗马凯撒大帝用来保护重要军情的加密系统。它是一种置换密码,通过将字母...
  • C语言实现文件加密解密

    万次阅读 2019-03-02 15:38:12
    闲来无事,随手翻了翻桌面上的C语言教程,意外发现了这段代码,就上机玩弄了一番,感觉有点实用性,写了点注释分享给大家。若有理解不到位的地方,还请大家批评指正 。 #include&lt;stdio.h&gt; #include&...
  • C语言DES加密解密代码

    2021-04-26 17:11:26
    原理分析:C语言实现DEA加密解密详解 #include <stdio.h> #include <stdlib.h> #include <string.h> //密钥 //64位变56位密钥置换表 int pc_1[56]={ 57,49,41,33,25,17,9, 1,58,50,42,34,26,18...
  • C语言实现AES加密解密,CBC模式,密钥32位,向量16位;加密结果同Java一致,但是因补码方式有区别,Java需是NoPadding补码方式;加密内容则需16的倍数;
  • C语言异或加密解密算法

    千次阅读 2019-04-27 17:15:26
    printf("加密:"); for(j=0;j;j++){ text[j] = text[j] ^ key; } puts(text); printf("解密:"); for(j=0;j;j++){ text[j] = text[j] ^ key; } puts(text); return 0; } 结果:
  • C语言实现加密解密

    2014-01-20 11:34:26
    VC++ 本人使用VS2010编译生成 附有可执行文件加密解密算法易懂
  • C语言实现任何文件加密解密

    万次阅读 2015-11-07 21:56:33
    使用命令提示符,实现任何文件加密解密功能。 代码如下: //#define _CRT_SECURE_NO_WARNINGS #include #include #include #include #include #pragma warning(disable:4996) //加密 void Encryption(char...
  • DES-加密解密语言算法的C语言实现文档带有完整的源代码,可加密字符串或者文件,已通过测试使用。
  • C语言加密解密算法

    千次阅读 多人点赞 2018-11-23 22:26:05
    C语言加密解密算法 简介:字符串的加密和解密方法一直被广泛应用,最常见的无非是 MD5 散列函数(MD5是信息摘要的一种,可以从任意长度的字符串生成128位的哈希值)。 先来看代码:(注意作者代码中的n全部都是...
  • C语言加密解密算法

    千次阅读 2018-01-25 17:46:55
    本文介绍了英文字符串的加密解密过程。是根据网上一篇博客的题目重写的程序。 原文地址:http://blog.csdn.net/meditator_hkx/article/details/49445773 #include #include int AlphabetTransfer(char *...
  • 在单一恺撒密码的基础上,法国外交家布莱斯·德·维吉尼亚(Blaise de Vigenère)发明了一种方法来对同一条信息中的不同字母用不同的密码进行加密。...这样,就可以防止任何人利用频率分析法解密该条信息。
  • C语言实现的AES加密解密算法

    千次下载 热门讨论 2013-08-26 10:36:17
    C语言实现的AES加密解密算法,用C语言实现的AES加密解密算法
  • 凯撒密码源自于罗马战争时期,用于情报的加密,其实就是根据字母表进位加密,不过在计算机中要考虑ACSII码的存在,当然也可以使用数组的方法去写。
  • 基于C语言加密解密软件的实现.pdf
  • } } void main() { // 原始文件的路径 char *oldpath = "tmAppAbDBB.db"; // 加密后的路径 char *newpath = "aa.db"; // 解密后的路径 char *newDecryptFilepath = "cc.db"; EncryptFile(oldpath, newpath); ...
  • 解密加密加密密钥置换选择循环左移明文IP置换L16R16的运算拓展置换S盒P置换IP逆置换解密 加密 DES加密算法其实分为两个部分,一部分对密钥进行处理 ,一部分对明文进行处理。 下面从一个例子说明: 64位明文: M=...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 13,050
精华内容 5,220
关键字:

c语言文件加密解密

c语言 订阅