Other articles


  1. 关于base64的一点理解

    以前只知道base64是一种编码字节串的算法,但对于它的原理实际并没有多少认识。 前段时间由于一个相关bug,重新深入地了解了下,发现其实非常简单,也很好理解。

    如果让我想一种此类的编码算法,第一时间想到的大概就是十六进制表示了,姑且在本文中称作十六进制编码吧。

    举个例子,假设一个二进制文件只包含3个字节,都是非打印字符:

    char bytes[] = {1, 133, 254};
    

    其十六进制编码表示 …

    read more
  2. 如何检查字节串内容?

    最近碰到一个字节串被截断bug:base64解码之后的字节串, 以C字符串的方式进行处理,导致当字节串中包含0x00时被截断了, 费了不少精力才定位出来,主要原因在于没能及时地检查出串的实际内容。

    这里字节串指其中每一个字节的可能值是[0x00, 0xff],不一定是可打印的ASCII字符, 在C中一般定义为unsigned char数组。

    下面总结下如何检查一块内存。

    GDB

    如果环境允许,首选GDB进行调试 …

    read more
  3. redis入门之retwis

    retwis是redis之父antirez在项目初期, 为了推广redis而写的一个迷你版twitter,同时还为此写了一个教程 介绍redis的数据类型以及如何使用它们构建一个高性能的web app。

    这里对retwis学习做个小结。

    redis数据类型

    redis支持5种数据类型:string,list,set,ordered set和hash, 另外还支持Bitmap和HyperLogLog两种类型(暂未了解), 具体见文档

    • string …

    read more

social