<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="zh">
	<id>https://game.etao.net/w/index.php?action=history&amp;feed=atom&amp;title=%E5%8A%A0%E5%AF%86%E5%92%8C%E7%BC%96%E7%A0%81%E7%AE%97%E6%B3%95</id>
	<title>加密和编码算法 - 版本历史</title>
	<link rel="self" type="application/atom+xml" href="https://game.etao.net/w/index.php?action=history&amp;feed=atom&amp;title=%E5%8A%A0%E5%AF%86%E5%92%8C%E7%BC%96%E7%A0%81%E7%AE%97%E6%B3%95"/>
	<link rel="alternate" type="text/html" href="https://game.etao.net/w/index.php?title=%E5%8A%A0%E5%AF%86%E5%92%8C%E7%BC%96%E7%A0%81%E7%AE%97%E6%B3%95&amp;action=history"/>
	<updated>2026-05-06T08:12:45Z</updated>
	<subtitle>本wiki上该页面的版本历史</subtitle>
	<generator>MediaWiki 1.43.0</generator>
	<entry>
		<id>https://game.etao.net/w/index.php?title=%E5%8A%A0%E5%AF%86%E5%92%8C%E7%BC%96%E7%A0%81%E7%AE%97%E6%B3%95&amp;diff=234&amp;oldid=prev</id>
		<title>127.0.0.1：​创建页面，内容为“{{Ctf_Wiki}} = 常见加密算法和编码识别 =  == 前言 ==  在对数据进行变换的过程中，除了简单的字节操作之外，还会使用一些常用的编码加密算法，因此如果能够快速识别出对应的编码或者加密算法，就能更快的分析出整个完整的算法。CTF 逆向中通常出现的加密算法包括base64、TEA、AES、RC4、MD5等。  &lt;span id=&quot;base64&quot;&gt;&lt;/span&gt; == Base64 ==  Base64 是一种基于64个可打…”</title>
		<link rel="alternate" type="text/html" href="https://game.etao.net/w/index.php?title=%E5%8A%A0%E5%AF%86%E5%92%8C%E7%BC%96%E7%A0%81%E7%AE%97%E6%B3%95&amp;diff=234&amp;oldid=prev"/>
		<updated>2023-07-02T08:17:17Z</updated>

		<summary type="html">&lt;p&gt;创建页面，内容为“{{Ctf_Wiki}} = 常见加密算法和编码识别 =  == 前言 ==  在对数据进行变换的过程中，除了简单的字节操作之外，还会使用一些常用的编码加密算法，因此如果能够快速识别出对应的编码或者加密算法，就能更快的分析出整个完整的算法。CTF 逆向中通常出现的加密算法包括base64、TEA、AES、RC4、MD5等。  &amp;lt;span id=&amp;quot;base64&amp;quot;&amp;gt;&amp;lt;/span&amp;gt; == Base64 ==  Base64 是一种基于64个可打…”&lt;/p&gt;
&lt;p&gt;&lt;b&gt;新页面&lt;/b&gt;&lt;/p&gt;&lt;div&gt;{{Ctf_Wiki}}&lt;br /&gt;
= 常见加密算法和编码识别 =&lt;br /&gt;
&lt;br /&gt;
== 前言 ==&lt;br /&gt;
&lt;br /&gt;
在对数据进行变换的过程中，除了简单的字节操作之外，还会使用一些常用的编码加密算法，因此如果能够快速识别出对应的编码或者加密算法，就能更快的分析出整个完整的算法。CTF 逆向中通常出现的加密算法包括base64、TEA、AES、RC4、MD5等。&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;base64&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
== Base64 ==&lt;br /&gt;
&lt;br /&gt;
Base64 是一种基于64个可打印字符来表示二进制数据的表示方法。转换的时候，将3字节的数据，先后放入一个24位的缓冲区中，先来的字节占高位。数据不足3字节的话，于缓冲器中剩下的比特用0补足。每次取出6比特（因为 [[File:https://wikimedia.org/api/rest_v1/media/math/render/svg/c4becc8d811901597b9807eccff60f0897e3701a|{\displaystyle 2^{6}=64}]]），按照其值选择`ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ `中的字符作为编码后的输出，直到全部输入数据转换完成。&lt;br /&gt;
&lt;br /&gt;
通常而言 Base64 的识别特征为索引表，当我们能找到 &amp;lt;code&amp;gt;ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ &amp;lt;/code&amp;gt; 这样索引表，再经过简单的分析基本就能判定是 Base64 编码。&lt;br /&gt;
&lt;br /&gt;
[[File:http://ob2hrvcxg.bkt.clouddn.com/20180822140744.png]]&lt;br /&gt;
&lt;br /&gt;
当然，有些题目 base64 的索引表是会变的，一些变种的 base64 主要 就是修改了这个索引表。&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;tea&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
== Tea ==&lt;br /&gt;
&lt;br /&gt;
在[https://zh.wikipedia.org/wiki/%E5%AF%86%E7%A0%81%E5%AD%A6 密码学]中，**微型加密算法**（Tiny Encryption Algorithm，TEA）是一种易于描述和[https://zh.wikipedia.org/w/index.php?title=%E6%89%A7%E8%A1%8C&amp;amp;action=edit&amp;amp;redlink=1 执行]的[https://zh.wikipedia.org/wiki/%E5%A1%8A%E5%AF%86%E7%A2%BC 块密码]，通常只需要很少的代码就可实现。其设计者是[https://zh.wikipedia.org/wiki/%E5%89%91%E6%A1%A5%E5%A4%A7%E5%AD%A6 剑桥大学计算机实验室]的[https://zh.wikipedia.org/w/index.php?title=%E5%A4%A7%E5%8D%AB%C2%B7%E6%83%A0%E5%8B%92&amp;amp;action=edit&amp;amp;redlink=1 大卫·惠勒]与[https://zh.wikipedia.org/w/index.php?title=%E7%BD%97%E6%9D%B0%C2%B7%E5%B0%BC%E8%BE%BE%E5%A7%86&amp;amp;action=edit&amp;amp;redlink=1 罗杰·尼达姆]。&lt;br /&gt;
&lt;br /&gt;
参考代码：&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;c&amp;quot;&amp;gt;#include &amp;lt;stdint.h&amp;gt;&lt;br /&gt;
&lt;br /&gt;
void encrypt (uint32_t* v, uint32_t* k) {&lt;br /&gt;
    uint32_t v0=v[0], v1=v[1], sum=0, i;           /* set up */&lt;br /&gt;
    uint32_t delta=0x9e3779b9;                     /* a key schedule constant */&lt;br /&gt;
    uint32_t k0=k[0], k1=k[1], k2=k[2], k3=k[3];   /* cache key */&lt;br /&gt;
    for (i=0; i &amp;lt; 32; i++) {                       /* basic cycle start */&lt;br /&gt;
        sum += delta;&lt;br /&gt;
        v0 += ((v1&amp;lt;&amp;lt;4) + k0) ^ (v1 + sum) ^ ((v1&amp;gt;&amp;gt;5) + k1);&lt;br /&gt;
        v1 += ((v0&amp;lt;&amp;lt;4) + k2) ^ (v0 + sum) ^ ((v0&amp;gt;&amp;gt;5) + k3);  &lt;br /&gt;
    }                                              /* end cycle */&lt;br /&gt;
    v[0]=v0; v[1]=v1;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void decrypt (uint32_t* v, uint32_t* k) {&lt;br /&gt;
    uint32_t v0=v[0], v1=v[1], sum=0xC6EF3720, i;  /* set up */&lt;br /&gt;
    uint32_t delta=0x9e3779b9;                     /* a key schedule constant */&lt;br /&gt;
    uint32_t k0=k[0], k1=k[1], k2=k[2], k3=k[3];   /* cache key */&lt;br /&gt;
    for (i=0; i&amp;lt;32; i++) {                         /* basic cycle start */&lt;br /&gt;
        v1 -= ((v0&amp;lt;&amp;lt;4) + k2) ^ (v0 + sum) ^ ((v0&amp;gt;&amp;gt;5) + k3);&lt;br /&gt;
        v0 -= ((v1&amp;lt;&amp;lt;4) + k0) ^ (v1 + sum) ^ ((v1&amp;gt;&amp;gt;5) + k1);&lt;br /&gt;
        sum -= delta;                                   &lt;br /&gt;
    }                                              /* end cycle */&lt;br /&gt;
    v[0]=v0; v[1]=v1;&lt;br /&gt;
}&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
在 Tea 算法中其最主要的识别特征就是 拥有一个 magic number ：0x9e3779b9 。当然，这 Tea 算法也有魔改的，感兴趣的可以看 2018 0ctf Quals milk-tea。&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;rc4&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
== RC4 ==&lt;br /&gt;
&lt;br /&gt;
在[https://zh.wikipedia.org/wiki/%E5%AF%86%E7%A2%BC%E5%AD%B8 密码学]中，**RC4**（来自Rivest Cipher 4的缩写）是一种[https://zh.wikipedia.org/wiki/%E6%B5%81%E5%8A%A0%E5%AF%86 流加密]算法，[https://zh.wikipedia.org/wiki/%E5%AF%86%E9%92%A5 密钥]长度可变。它加解密使用相同的密钥，因此也属于[https://zh.wikipedia.org/wiki/%E5%AF%B9%E7%A7%B0%E5%8A%A0%E5%AF%86 对称加密算法]。RC4是[https://zh.wikipedia.org/wiki/%E6%9C%89%E7%B7%9A%E7%AD%89%E6%95%88%E5%8A%A0%E5%AF%86 有线等效加密]（WEP）中采用的加密算法，也曾经是[https://zh.wikipedia.org/wiki/%E4%BC%A0%E8%BE%93%E5%B1%82%E5%AE%89%E5%85%A8%E5%8D%8F%E8%AE%AE TLS]可采用的算法之一。&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre class=&amp;quot;C&amp;quot;&amp;gt;void rc4_init(unsigned char *s, unsigned char *key, unsigned long Len) //初始化函数&lt;br /&gt;
{&lt;br /&gt;
    int i =0, j = 0;&lt;br /&gt;
    char k[256] = {0};&lt;br /&gt;
    unsigned char tmp = 0;&lt;br /&gt;
    for (i=0;i&amp;amp;lt;256;i++) {&lt;br /&gt;
        s[i] = i;&lt;br /&gt;
        k[i] = key[i%Len];&lt;br /&gt;
    }&lt;br /&gt;
    for (i=0; i&amp;amp;lt;256; i++) {&lt;br /&gt;
        j=(j+s[i]+k[i])%256;&lt;br /&gt;
        tmp = s[i];&lt;br /&gt;
        s[i] = s[j]; //交换s[i]和s[j]&lt;br /&gt;
        s[j] = tmp;&lt;br /&gt;
    }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
void rc4_crypt(unsigned char *s, unsigned char *Data, unsigned long Len) //加解密&lt;br /&gt;
{&lt;br /&gt;
    int i = 0, j = 0, t = 0;&lt;br /&gt;
    unsigned long k = 0;&lt;br /&gt;
    unsigned char tmp;&lt;br /&gt;
    for(k=0;k&amp;amp;lt;Len;k++) {&lt;br /&gt;
        i=(i+1)%256;&lt;br /&gt;
        j=(j+s[i])%256;&lt;br /&gt;
        tmp = s[i];&lt;br /&gt;
        s[i] = s[j]; //交换s[x]和s[y]&lt;br /&gt;
        s[j] = tmp;&lt;br /&gt;
        t=(s[i]+s[j])%256;&lt;br /&gt;
        Data[k] ^= s[t];&lt;br /&gt;
     }&lt;br /&gt;
} &amp;lt;/pre&amp;gt;&lt;br /&gt;
通过分析初始化代码，可以看出初始化代码中，对字符数组s进行了初始化赋值，且赋值分别递增。之后对s进行了256次交换操作。通过识别初始化代码，可以知道rc4算法。&lt;br /&gt;
&lt;br /&gt;
其伪代码表示为：&lt;br /&gt;
&lt;br /&gt;
初始化长度为256的[https://zh.wikipedia.org/wiki/S%E7%9B%92 S盒]。第一个for循环将0到255的互不重复的元素装入S盒。第二个for循环根据密钥打乱S盒。&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;c&amp;quot;&amp;gt;  for i from 0 to 255&lt;br /&gt;
     S[i] := i&lt;br /&gt;
 endfor&lt;br /&gt;
 j := 0&lt;br /&gt;
 for( i=0 ; i&amp;lt;256 ; i++)&lt;br /&gt;
     j := (j + S[i] + key[i mod keylength]) % 256&lt;br /&gt;
     swap values of S[i] and S[j]&lt;br /&gt;
 endfor&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
下面i,j是两个指针。每收到一个字节，就进行while循环。通过一定的算法（(a),(b)）定位S盒中的一个元素，并与输入字节异或，得到k。循环中还改变了S盒（(c)）。如果输入的是[https://zh.wikipedia.org/wiki/%E6%98%8E%E6%96%87 明文]，输出的就是[https://zh.wikipedia.org/wiki/%E5%AF%86%E6%96%87 密文]；如果输入的是密文，输出的就是明文。&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;c&amp;quot;&amp;gt; i := 0&lt;br /&gt;
 j := 0&lt;br /&gt;
 while GeneratingOutput:&lt;br /&gt;
     i := (i + 1) mod 256   //a&lt;br /&gt;
     j := (j + S[i]) mod 256 //b&lt;br /&gt;
     swap values of S[i] and S[j]  //c&lt;br /&gt;
     k := inputByte ^ S[(S[i] + S[j]) % 256]&lt;br /&gt;
     output K&lt;br /&gt;
 endwhile&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
此算法保证每256次循环中S盒的每个元素至少被交换过一次&lt;br /&gt;
&lt;br /&gt;
=== python解密脚本 ===&lt;br /&gt;
&lt;br /&gt;
对应例题：《从 0 到 1》RE 篇——BabyAlgorithm&lt;br /&gt;
&lt;br /&gt;
[[https://buuoj.cn/challenges#[%E7%AC%AC%E4%BA%94%E7%AB%A0%20CTF%E4%B9%8BRE%E7%AB%A0]BabyAlgorithm|题目链接]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;import base64&lt;br /&gt;
def rc4_main(key = &amp;quot;init_key&amp;quot;, message = &amp;quot;init_message&amp;quot;):&lt;br /&gt;
    print(&amp;quot;RC4解密主函数调用成功&amp;quot;)&lt;br /&gt;
    print(&amp;#039;\n&amp;#039;)&lt;br /&gt;
    s_box = rc4_init_sbox(key)&lt;br /&gt;
    crypt = rc4_excrypt(message, s_box)&lt;br /&gt;
    return crypt&lt;br /&gt;
def rc4_init_sbox(key):&lt;br /&gt;
    s_box = list(range(256))&lt;br /&gt;
    print(&amp;quot;原来的 s 盒：%s&amp;quot; % s_box)&lt;br /&gt;
    print(&amp;#039;\n&amp;#039;)&lt;br /&gt;
    j = 0&lt;br /&gt;
    for i in range(256):&lt;br /&gt;
        j = (j + s_box[i] + ord(key[i % len(key)])) % 256&lt;br /&gt;
        s_box[i], s_box[j] = s_box[j], s_box[i]&lt;br /&gt;
    print(&amp;quot;混乱后的 s 盒：%s&amp;quot;% s_box)&lt;br /&gt;
    print(&amp;#039;\n&amp;#039;)&lt;br /&gt;
    return s_box&lt;br /&gt;
def rc4_excrypt(plain, box):&lt;br /&gt;
    print(&amp;quot;调用解密程序成功。&amp;quot;)&lt;br /&gt;
    print(&amp;#039;\n&amp;#039;)&lt;br /&gt;
    plain = base64.b64decode(plain.encode(&amp;#039;utf-8&amp;#039;))&lt;br /&gt;
    plain = bytes.decode(plain)&lt;br /&gt;
    res = []&lt;br /&gt;
    i = j = 0&lt;br /&gt;
    for s in plain:&lt;br /&gt;
        i = (i + 1) % 256&lt;br /&gt;
        j = (j + box[i]) % 256&lt;br /&gt;
        box[i], box[j] = box[j], box[i]&lt;br /&gt;
        t = (box[i] + box[j]) % 256&lt;br /&gt;
        k = box[t]&lt;br /&gt;
        res.append(chr(ord(s) ^ k))&lt;br /&gt;
    print(&amp;quot;res用于解密字符串，解密后是：%res&amp;quot; %res)&lt;br /&gt;
    print(&amp;#039;\n&amp;#039;)&lt;br /&gt;
    cipher = &amp;quot;&amp;quot;.join(res)&lt;br /&gt;
    print(&amp;quot;解密后的字符串是：%s&amp;quot; %cipher)&lt;br /&gt;
    print(&amp;#039;\n&amp;#039;)&lt;br /&gt;
    print(&amp;quot;解密后的输出(没经过任何编码):&amp;quot;)&lt;br /&gt;
    print(&amp;#039;\n&amp;#039;)&lt;br /&gt;
    return cipher&lt;br /&gt;
a=[] #cipher&lt;br /&gt;
key=&amp;quot;&amp;quot;&lt;br /&gt;
s=&amp;quot;&amp;quot;&lt;br /&gt;
for i in a:&lt;br /&gt;
    s+=chr(i)&lt;br /&gt;
s=str(base64.b64encode(s.encode(&amp;#039;utf-8&amp;#039;)), &amp;#039;utf-8&amp;#039;)&lt;br /&gt;
rc4_main(key, s)&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;span id=&amp;quot;md5&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
== MD5 ==&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;MD5消息摘要算法&amp;#039;&amp;#039;&amp;#039;（英语：MD5 Message-Digest Algorithm），一种被广泛使用的[https://zh.wikipedia.org/wiki/%E5%AF%86%E7%A2%BC%E9%9B%9C%E6%B9%8A%E5%87%BD%E6%95%B8 密码散列函数]，可以产生出一个128位（16[https://zh.wikipedia.org/wiki/%E5%AD%97%E8%8A%82 字节]）的散列值（hash value），用于确保信息传输完整一致。MD5由美国密码学家[https://zh.wikipedia.org/wiki/%E7%BD%97%E7%BA%B3%E5%BE%B7%C2%B7%E6%9D%8E%E7%BB%B4%E6%96%AF%E7%89%B9 罗纳德·李维斯特]（Ronald Linn Rivest）设计，于1992年公开，用以取代[https://zh.wikipedia.org/wiki/MD4 MD4]算法。这套算法的程序在 [https://tools.ietf.org/html/rfc1321 RFC 1321] 中被加以规范。&lt;br /&gt;
&lt;br /&gt;
伪代码表示为：&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;/Note: All variables are unsigned 32 bits and wrap modulo 2^32 when calculating&lt;br /&gt;
var int[64] r, k&lt;br /&gt;
&lt;br /&gt;
//r specifies the per-round shift amounts&lt;br /&gt;
r[ 0..15]：= {7, 12, 17, 22,  7, 12, 17, 22,  7, 12, 17, 22,  7, 12, 17, 22} &lt;br /&gt;
r[16..31]：= {5,  9, 14, 20,  5,  9, 14, 20,  5,  9, 14, 20,  5,  9, 14, 20}&lt;br /&gt;
r[32..47]：= {4, 11, 16, 23,  4, 11, 16, 23,  4, 11, 16, 23,  4, 11, 16, 23}&lt;br /&gt;
r[48..63]：= {6, 10, 15, 21,  6, 10, 15, 21,  6, 10, 15, 21,  6, 10, 15, 21}&lt;br /&gt;
&lt;br /&gt;
//Use binary integer part of the sines of integers as constants:&lt;br /&gt;
for i from 0 to 63&lt;br /&gt;
    k[i] := floor(abs(sin(i + 1)) × 2^32)&lt;br /&gt;
&lt;br /&gt;
//Initialize variables:&lt;br /&gt;
var int h0 := 0x67452301&lt;br /&gt;
var int h1 := 0xEFCDAB89&lt;br /&gt;
var int h2 := 0x98BADCFE&lt;br /&gt;
var int h3 := 0x10325476&lt;br /&gt;
&lt;br /&gt;
//Pre-processing:&lt;br /&gt;
append &amp;amp;quot;1&amp;amp;quot; bit to message&lt;br /&gt;
append &amp;amp;quot;0&amp;amp;quot; bits until message length in bits ≡ 448 (mod 512)&lt;br /&gt;
append bit length of message as 64-bit little-endian integer to message&lt;br /&gt;
&lt;br /&gt;
//Process the message in successive 512-bit chunks:&lt;br /&gt;
for each 512-bit chunk of message&lt;br /&gt;
    break chunk into sixteen 32-bit little-endian words w[i], 0 ≤ i ≤ 15&lt;br /&gt;
&lt;br /&gt;
    //Initialize hash value for this chunk:&lt;br /&gt;
    var int a := h0&lt;br /&gt;
    var int b := h1&lt;br /&gt;
    var int c := h2&lt;br /&gt;
    var int d := h3&lt;br /&gt;
&lt;br /&gt;
    //Main loop:&lt;br /&gt;
    for i from 0 to 63&lt;br /&gt;
        if 0 ≤ i ≤ 15 then&lt;br /&gt;
            f := (b and c) or ((not b) and d)&lt;br /&gt;
            g := i&lt;br /&gt;
        else if 16 ≤ i ≤ 31&lt;br /&gt;
            f := (d and b) or ((not d) and c)&lt;br /&gt;
            g := (5×i + 1) mod 16&lt;br /&gt;
        else if 32 ≤ i ≤ 47&lt;br /&gt;
            f := b xor c xor d&lt;br /&gt;
            g := (3×i + 5) mod 16&lt;br /&gt;
        else if 48 ≤ i ≤ 63&lt;br /&gt;
            f := c xor (b or (not d))&lt;br /&gt;
            g := (7×i) mod 16&lt;br /&gt;
 &lt;br /&gt;
        temp := d&lt;br /&gt;
        d := c&lt;br /&gt;
        c := b&lt;br /&gt;
        b := leftrotate((a + f + k[i] + w[g]),r[i]) + b&lt;br /&gt;
        a := temp&lt;br /&gt;
    Next i&lt;br /&gt;
    //Add this chunk&amp;#039;s hash to result so far:&lt;br /&gt;
    h0 := h0 + a&lt;br /&gt;
    h1 := h1 + b &lt;br /&gt;
    h2 := h2 + c&lt;br /&gt;
    h3 := h3 + d&lt;br /&gt;
End ForEach&lt;br /&gt;
var int digest := h0 append h1 append h2 append h3 //(expressed as little-endian)&amp;lt;/pre&amp;gt;&lt;br /&gt;
其鲜明的特征是：&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;c&amp;quot;&amp;gt;    h0 = 0x67452301;&lt;br /&gt;
    h1 = 0xefcdab89;&lt;br /&gt;
    h2 = 0x98badcfe;&lt;br /&gt;
    h3 = 0x10325476;&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:Reverse_Overview]]&lt;/div&gt;</summary>
		<author><name>127.0.0.1</name></author>
	</entry>
</feed>