<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="zh-Hans-CN">
	<id>https://wiki.riguz.com/index.php?action=history&amp;feed=atom&amp;title=TEA%E5%8A%A0%E5%AF%86%E7%AE%97%E6%B3%95</id>
	<title>TEA加密算法 - 版本历史</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.riguz.com/index.php?action=history&amp;feed=atom&amp;title=TEA%E5%8A%A0%E5%AF%86%E7%AE%97%E6%B3%95"/>
	<link rel="alternate" type="text/html" href="https://wiki.riguz.com/index.php?title=TEA%E5%8A%A0%E5%AF%86%E7%AE%97%E6%B3%95&amp;action=history"/>
	<updated>2026-06-02T18:59:08Z</updated>
	<subtitle>本wiki上该页面的版本历史</subtitle>
	<generator>MediaWiki 1.42.3</generator>
	<entry>
		<id>https://wiki.riguz.com/index.php?title=TEA%E5%8A%A0%E5%AF%86%E7%AE%97%E6%B3%95&amp;diff=1357&amp;oldid=prev</id>
		<title>imported&gt;Soleverlee：​以“TEA(Tiny Encryption Algorithm)算法由剑桥大学计算机实验室的David Wheeler和Roger Needham于1994年发明。它是一种分组密码算法，其明文密...”为内容创建页面</title>
		<link rel="alternate" type="text/html" href="https://wiki.riguz.com/index.php?title=TEA%E5%8A%A0%E5%AF%86%E7%AE%97%E6%B3%95&amp;diff=1357&amp;oldid=prev"/>
		<updated>2015-10-30T07:12:23Z</updated>

		<summary type="html">&lt;p&gt;以“TEA(Tiny Encryption Algorithm)算法由剑桥大学计算机实验室的David Wheeler和Roger Needham于1994年发明。它是一种分组密码算法，其明文密...”为内容创建页面&lt;/p&gt;
&lt;p&gt;&lt;b&gt;新页面&lt;/b&gt;&lt;/p&gt;&lt;div&gt;TEA(Tiny Encryption Algorithm)算法由剑桥大学计算机实验室的David Wheeler和Roger Needham于1994年发明。它是一种分组密码算法，其明文密文块为64比特，密钥长度为128比特。TEA算法利用不断增加的Delta(黄金分割率)值作为变化，使得每轮的加密是不同，该加密算法的迭代次数可以改变，建议的迭代次数为32轮。&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;cpp&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;lt;inttypes.h&amp;gt;&lt;br /&gt;
&lt;br /&gt;
#define CYCLE_TIMES_ 32&lt;br /&gt;
&lt;br /&gt;
static void encrypt(uint32_t *v, uint32_t *k) {&lt;br /&gt;
    uint32_t y = v[0], z = v[1], sum = 0, i;              /* set up */&lt;br /&gt;
    uint32_t delta = 0x9e3779b9;                          /* a key schedule constant */&lt;br /&gt;
    uint32_t a = k[0], b = k[1], c = k[2], d = k[3];      /* cache key */&lt;br /&gt;
    for (i = 0; i &amp;lt; CYCLE_TIMES_; i++) {                  /* basic cycle start */&lt;br /&gt;
        sum += delta;&lt;br /&gt;
        y += ((z &amp;lt;&amp;lt; 4) + a) ^ (z + sum) ^ ((z &amp;gt;&amp;gt; 5) + b);&lt;br /&gt;
        z += ((y &amp;lt;&amp;lt; 4) + c) ^ (y + sum) ^ ((y &amp;gt;&amp;gt; 5) + d); /* end cycle */&lt;br /&gt;
    }&lt;br /&gt;
    v[0] = y;&lt;br /&gt;
    v[1] = z;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
static void decrypt(uint32_t *v, uint32_t *k) {&lt;br /&gt;
    uint32_t y = v[0], z = v[1], sum = 0xC6EF3720, i;     /* set up */&lt;br /&gt;
    uint32_t delta = 0x9e3779b9;                          /* a key schedule constant */&lt;br /&gt;
    uint32_t a = k[0], b = k[1], c = k[2], d = k[3];      /* cache key */&lt;br /&gt;
    for (i = 0; i &amp;lt; CYCLE_TIMES_; i++) {                  /* basic cycle start */&lt;br /&gt;
        z -= ((y &amp;lt;&amp;lt; 4) + c) ^ (y + sum) ^ ((y &amp;gt;&amp;gt; 5) + d);&lt;br /&gt;
        y -= ((z &amp;lt;&amp;lt; 4) + a) ^ (z + sum) ^ ((z &amp;gt;&amp;gt; 5) + b);&lt;br /&gt;
        sum -= delta;                                     /* end cycle */&lt;br /&gt;
    }&lt;br /&gt;
    v[0] = y;&lt;br /&gt;
    v[1] = z;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
需要注意的是，加密时要不足8位的要补齐。&lt;br /&gt;
[[Category:Algorithm]]&lt;/div&gt;</summary>
		<author><name>imported&gt;Soleverlee</name></author>
	</entry>
</feed>