小编zyr*_*m64的帖子

C编程的好方法

我目前编程自己的实现printf,这里是代码:

int my_printf(const char *format, ...)
{
        //Declare variable ou prog fonctionnel????
        va_list args;
        int numberValue;
        unsigned int unsignedNumberValue;
        double doubleValue;
        char* stringValue;
        char charValue;
        va_start(args, format);
        for(int i = 0; format[i]; i++){
                //This case is the most called case, so we test it first to get the
                //best perfs
                if(format[i] != '%'){
                        my_put_char(format[i]);
                }else{
                        if(format[i+1] == 'd' || format[i+1] == 'i'){
                                numberValue = va_arg(args, int);
                                my_put_nbr(numberValue);
                        }else if(format[i+1] == 'u'){
                                unsignedNumberValue = va_arg(args, unsigned int);
                                my_put_nbr_unsigned(unsignedNumberValue);
                        }else …
Run Code Online (Sandbox Code Playgroud)

c printf memory-management

5
推荐指数
1
解决办法
197
查看次数

反向^运算符用于解密

我试图反转以下代码,以提供一个获取缓冲区并解密它的函数.

void crypt_buffer(unsigned char *buffer, size_t size, char *key) {
    size_t i;
    int j;

    j = 0;
    for(i = 0; i < size; i++) {
        if(j >= KEY_SIZE)
            j = 0;
        buffer[i] ^= key[j];
        j++;
    }
}
Run Code Online (Sandbox Code Playgroud)

我担心如果简单buffer[i] ^= (1/key[j]);就足以解密加密文件了.但是会有一些截断问题,不是吗?

c security encryption algorithm math

1
推荐指数
1
解决办法
108
查看次数

标签 统计

c ×2

algorithm ×1

encryption ×1

math ×1

memory-management ×1

printf ×1

security ×1