小编caf*_*caf的帖子

Code Golf:XOR加密

来自:加密公司
收件人:x $*sj4(就是你)

如果您选择接受它,您的任务就是用最短的击键次数创建一个程序

  • 采用两个文件名参数(命令行或标准输入),第一个是包含密钥的文件,第二个是一些消息.这两个文件都是纯文本.

  • 使用XOR加密将密钥应用于邮件,覆盖文件.

例:

输入文件:

StackOverflow很酷

键:

Code Golf

加密输出文件的十六进制转储:

0000000: 101b 0506 4b08 1909 1425 030b 1200 2e1c  ....K....%......
0000010: 4c25 2c00 080d 0a                        L%,....
Run Code Online (Sandbox Code Playgroud)

为简单起见,假设文件可以适合内存


此消息将在5 ... 4 ... 3 ... 2 ... 1中自加密...

     #####
    #### _\_  ________
    ##=-[.].]| \      \
    #(    _\ |  |------|
     #   __| |  ||||||||
      \  _/  |  ||||||||
   .--'--'-. |  | ____ |
  / __      `|__|[o__o]|
_(____nm_______ /____\____ 
Run Code Online (Sandbox Code Playgroud)

如果密钥的大小大于或等于消息的大小并且密钥是由无偏的随机过程生成的,则XOR加密是不可能破解的.见:一次性垫.所以这里没有"糟糕的加密".

encryption code-golf xor

37
推荐指数
8
解决办法
6247
查看次数

什么是__i686.get_pc_thunk.bx?为什么我们需要这个电话?

当我拆卸我的小功能时,我碰巧看到了这个电话

call   0xf60d2f47 <__i686.get_pc_thunk.bx>.
Run Code Online (Sandbox Code Playgroud)

我不知道为什么我需要在我的程序中调用此函数.任何解释都会有所帮助.

c assembly glibc shared-libraries

35
推荐指数
2
解决办法
2万
查看次数

格式化struct timespec

如何格式化struct timespec为字符串?这个结构例如clock_gettime()在Linux gcc上返回:

struct timespec {
    time_t   tv_sec;        /* seconds */
    long     tv_nsec;       /* nanoseconds */
};
Run Code Online (Sandbox Code Playgroud)

c linux gcc

30
推荐指数
3
解决办法
10万
查看次数

TCP连接打开后是否会移动到另一个端口?

如果TCP套接字服务器在端口28081上侦听传入连接,然后接受连接并开始接收数据.数据进入的端口是28081还是端口被更改.

例如,下面的伪代码中传入数据的端口是什么?它仍然是28081还是操作系统分配了一个新端口?:

bind
listen (on port 28081)

while 1
  fd = accept
  fork
  if child process incoming data 
Run Code Online (Sandbox Code Playgroud)

c sockets networking tcp

28
推荐指数
1
解决办法
2万
查看次数

是&p有效C,假设p是指向不完整类型的指针?

以下示例是C中有效的完整翻译单元吗?

struct foo;

struct foo *bar(struct foo *j)
{
    return &*j;
}
Run Code Online (Sandbox Code Playgroud)

struct foo是一个不完整的类型,但我找不到明确禁止在C标准中解除引用不完整类型.特别是,§6.5.3.2说:

一元运算&符产生其操作数的地址.如果操作数具有类型''type'',则结果具有类型''指向类型''的指针.如果操作数是一元运算*符的结果,则不会对该运算符和&运算符进行求值,结果就好像两者都被省略,除了对运算符的约束仍然适用且结果不是左值.

结果不是左值的事实不是密切相关的 - 返回值不一定是.对*运营商的限制很简单:

一元*运算符的操作数应具有指针类型.

而对于&运营商来说:

一元运算&符的操作数应该是函数指示符,[]一元或一元运算*符的结果,或者是一个左值,它指定一个不是位字段且不用register存储类说明符声明的对象.

这两个都非常满意,所以结果应该等同于return j;.

但是,gcc 4.4.5不编译此代码.它反而出现以下错误:

y.c:5: error: dereferencing pointer to incomplete type
Run Code Online (Sandbox Code Playgroud)

这是gcc的缺陷吗?

c pointers language-lawyer incomplete-type

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

可以使用私钥加密/使用公钥解密吗?

[免责声明:我知道,如果你对加密有任何了解,你可能会告诉我为什么我做错了 - 我已经做了足够的谷歌搜索,知道这似乎是典型的反应.]

假设以下内容:您有一个中央权限,想要为给定域发出登录cookie.在此域上,您不一定信任所有人,但您有一些能够读取cookie的关键端点.我说了一些,但在实践中,这些"可信"的合作伙伴可能很大.Cookie不包含太多信息 - 用户名,时间戳,到期日,随机数.当然,出于性能原因,即使在加密后(在合理范围内),它仍应保持很小.现在,有两个安全问题:

1)我们不信任此域上的每个网络服务器都有用户数据.因此,读取cookie的能力应仅限于这些可信赖的合作伙伴.2)虽然我们相信这些合作伙伴能够保护我们用户的数据,但我们仍然希望权威的中心点是不可伪造的(同样在合理范围内).

现在,如果我们为权限生成私有RSA密钥并保密,并将公钥仅分发给"可信伙伴",我们应该能够使用私钥进行加密,并且任何拥有公钥的人都可以读取它. .我不清楚的是,是否仍然需要签署该消息,或者解密行为是否是使用私钥生成的证据?这种方案的优点还是比向所有相关方传播对称密钥并使用它加密更好或更差,而使用私钥只是为了签名?当然可以随意告诉我这是一个愚蠢的想法,但请记住,实际的论点可能比重塑爱丽丝和鲍勃更有说服力.

哦,并且实现指针是受欢迎的,尽管可以在Google上找到基础知识,如果有任何"陷阱"可能会有用!

cookies openssl cryptography rsa

24
推荐指数
3
解决办法
4万
查看次数

request_mem_region()实际上做什么以及何时需要它?

我正在研究编写嵌入式Linux驱动程序,并决定开发一些GPIO以确保我正确理解本书(LDD3,第9.4.1节).

我可以按照预期控制正确的GPIO引脚(使其高低,我用万用表探测); 但是,我测试了2个代码,一个有request_mem_region(),一个没有.我期待一个没有失败的人,但两个都工作得很好.

代码request_mem_region:

if( request_mem_region( PIN3_CONF_PHYS, MAPPED_SIZE_GPIO_CONF,DEVICE_NAME ) == NULL )
  {
    printk( KERN_ALERT
            "GPIO_140_141_conf_phys error:%s: unable to obtain I/O memory address 0x%08llX\n",
            DEVICE_NAME, PIN3_CONF_PHYS );

    return -EBUSY;
  }

pin3_conf = (u32)ioremap( PIN3_CONF_PHYS, MAPPED_SIZE_GPIO_CONF);
pin4_conf = (u32)ioremap( PIN4_CONF_PHYS, MAPPED_SIZE_GPIO_CONF);
pin5_conf = (u32)ioremap( PIN5_CONF_PHYS, MAPPED_SIZE_GPIO_CONF);
pin6_conf = (u32)ioremap( PIN6_CONF_PHYS, MAPPED_SIZE_GPIO_CONF);
//-----------------------------------------------------------------
if( request_mem_region( GPIO_BANK5_PHYS, MAPPED_SIZE_GPIO_5,DEVICE_NAME ) == NULL )
  {
    printk( KERN_ALERT
            "error:%s: unable to obtain I/O memory address 0x%08llX\n",
            DEVICE_NAME, GPIO_BANK5_PHYS );

    return …
Run Code Online (Sandbox Code Playgroud)

c linux-device-driver linux-kernel embedded-linux

23
推荐指数
2
解决办法
2万
查看次数

C中当前进程的内存使用情况

我需要在C中获取当前进程的内存使用情况.有人可以在Linux平台上提供如何执行此操作的代码示例吗?

我知道cat /proc/<your pid>/status获取内存的方法,但我不知道如何在C中捕获它.

顺便说一句,这是我正在修改的PHP扩展(授予,我是C新手).如果PHP扩展API中有可用的快捷方式,那将更有帮助.

c linux memory memory-management php-extension

21
推荐指数
6
解决办法
5万
查看次数

系统调用位于glibc源中的哪个位置

所以我正在浏览linux glibc源代码,但我看不到它实际上做了什么.以下是来自io/chdir.c但它表明了许多源文件.这里发生了什么?显然我错过了一些东西.秘诀是什么,它在哪里进行系统调用或实际执行某些操作?

stub_warning是一些遗留的疯狂. __set_errno似乎是一个简单的宏设置errno.虽然我发现一百万用法,但weak_alias我没有看到它在任何地方定义.

是否有一个有用的指南来了解glibc如何在某处工作?

#include <errno.h>
#include <stddef.h>
#include <unistd.h>

/* Change the current directory to PATH.  */
int
__chdir (path)
     const char *path;
{
  if (path == NULL)
    {
      __set_errno (EINVAL);
      return -1;
    }

  __set_errno (ENOSYS);
  return -1;
}
stub_warning (chdir)

weak_alias (__chdir, chdir)
#include <stub-tag.h> 
Run Code Online (Sandbox Code Playgroud)

c linux glibc

21
推荐指数
4
解决办法
4200
查看次数

PNG文件格式字节顺序?

我不确定endian是否是正确的词,但..

我一直在解析PNG文件,我注意到所有的整数值都是大端的.这是真的?

例如,宽度和高度作为32位无符号整数存储在PNG文件中.我的图像是16x16,在文件中存储为:

00 00 00 10
Run Code Online (Sandbox Code Playgroud)

应该是什么时候:

10 00 00 00
Run Code Online (Sandbox Code Playgroud)

这是真的还是我缺少的东西?

png endianness

20
推荐指数
2
解决办法
6337
查看次数