日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > php >内容正文

php

php tea 算法 源码,PHP教程:TEA算法实现

發(fā)布時間:2025/3/15 php 36 豆豆
生活随笔 收集整理的這篇文章主要介紹了 php tea 算法 源码,PHP教程:TEA算法实现 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

算法簡單,而且效率高,每次可以操作8個字節(jié)的數(shù)據(jù),加密解密的KEY為16字節(jié),即包含4個int數(shù)據(jù)的int型數(shù)組,加密輪數(shù)應(yīng)為8的倍數(shù),一般比較常用的輪數(shù)為64,32,16,QQ原來就是用TEA16來還原密碼的.

TEA算法

核心為:

#include

void encrypt (uint32_t* v, uint32_t* k) {

uint32_t v0=v[0], v1=v[1], sum=0, i; /* set up */

uint32_t delta=0x9e3779b9; /* a key schedule constant */

uint32_t k0=k[0], k1=k[1], k2=k[2], k3=k[3]; /* cache key */

for (i=0; i < 32; i++) { /* basic cycle start */

sum += delta;

v0 += ((v1<<4) + k0) ^ (v1 + sum) ^ ((v1>>5) + k1);

v1 += ((v0<<4) + k2) ^ (v0 + sum) ^ ((v0>>5) + k3);

} /* end cycle */

v[0]=v0; v[1]=v1;

}

void decrypt (uint32_t* v, uint32_t* k) {

uint32_t v0=v[0], v1=v[1], sum=0xC6EF3720, i; /* set up */

uint32_t delta=0x9e3779b9; /* a key schedule constant */

uint32_t k0=k[0], k1=k[1], k2=k[2], k3=k[3]; /* cache key */

for (i=0; i<32; i++) { /* basic cycle start */

v1 -= ((v0<<4) + k2) ^ (v0 + sum) ^ ((v0>>5) + k3);

v0 -= ((v1<<4) + k0) ^ (v1 + sum) ^ ((v1>>5) + k1);

sum -= delta;

} /* end cycle */

v[0]=v0; v[1]=v1;

}

PHP部分代碼非我原創(chuàng),大家可以了解一下這方面的知識

上面的是TEA的算法,XTEA的算法為:

#include

void encipher(unsigned int num_rounds, uint32_t v[2], uint32_t const k[4]) {

unsigned int i;

uint32_t v0=v[0], v1=v[1], sum=0, delta=0x9E3779B9;

for (i=0; i < num_rounds; i++) {

v0 += (((v1 << 4) ^ (v1 >> 5)) + v1) ^ (sum + k[sum & 3]);

sum += delta;

v1 += (((v0 << 4) ^ (v0 >> 5)) + v0) ^ (sum + k[(sum>>11) & 3]);

}

v[0]=v0; v[1]=v1;

}

void decipher(unsigned int num_rounds, uint32_t v[2], uint32_t const k[4]) {

unsigned int i;

uint32_t v0=v[0], v1=v[1], delta=0x9E3779B9, sum=delta*num_rounds;

for (i=0; i < num_rounds; i++) {

v1 ?= (((v0 << 4) ^ (v0 >> 5)) + v0) ^ (sum + k[(sum>>11) & 3]);

sum ?= delta;

v0 ?= (((v1 << 4) ^ (v1 >> 5)) + v1) ^ (sum + k[sum & 3]);

}

v[0]=v0; v[1]=v1;

}

那PHP中只需要把運算的位置改下就OK

private function _teaencipherLong($y, $z, &$w, &$k) {

$sum = ( integer ) 0;

$delta = 0x9E3779B9;

$n = ( integer ) $this->n_iter;

while ( $n -- > 0 ) {

$y = $this->_add ( $y, $this->_add ( $z << 4 ^ $this->_rshift ( $z, 5 ), $z ) ^ $this->_add ( $sum, $k [$sum & 3] ) );

$sum = $this->_add ( $sum, $delta );

$z = $this->_add ( $z, $this->_add ( $y << 4 ^ $this->_rshift ( $y, 5 ), $y ) ^ $this->_add ( $sum, $k [$this->_rshift ( $sum, 11 ) & 3] ) );

}

$w [0] = $y;

$w [1] = $z;

}

private function _decipherLong($y, $z, &$w, &$k) {

// sum = delta<<5, in general sum = delta * n

$sum = 0xC6EF3720;

$delta = 0x9E3779B9;

$n = ( integer ) $this->n_iter;

while ( $n -- > 0 ) {

$z = $this->_add ( $z, - ($this->_add ( $y << 4 ^ $this->_rshift ( $y, 5 ), $y ) ^ $this->_add ( $sum, $k [$this->_rshift ( $sum, 11 ) & 3] )) );

$sum = $this->_add ( $sum, - $delta );

$y = $this->_add ( $y, - ($this->_add ( $z << 4 ^ $this->_rshift ( $z, 5 ), $z ) ^ $this->_add ( $sum, $k [$sum & 3] )) );

}

$w [0] = $y;

$w [1] = $z;

}

XXTEA的算法

核心為

#define MX (z>>5^y<<2) + (y>>3^z<<4)^(sum^y) + (k[p&3^e]^z);

long btea(long* v, long n, long* k) {

unsigned long z=v[n-1], y=v[0], sum=0, e, DELTA=0x9e3779b9;

long p, q ;

if (n > 1) { /* Coding Part */

q = 6 + 52/n;

while (q-- > 0) {

sum += DELTA;

e = (sum >> 2) & 3;

for (p=0; p

y = v[0];

z = v[n-1] += MX;

}

return 0 ;

} else if (n < -1) { /* Decoding Part */

n = -n;

q = 6 + 52/n;

sum = q*DELTA ;

while (sum != 0) {

e = (sum >> 2) & 3;

for (p=n-1; p>0; p--) z = v[p-1], y = v[p] -= MX;

z = v[n-1];

y = v[0] -= MX;

sum -= DELTA;

}

return 0;

}

return 1;

}

也是運算不一樣,這個就不寫了,有人已經(jīng)寫過這方面的代碼了

本文原創(chuàng)發(fā)布php中文網(wǎng),轉(zhuǎn)載請注明出處,感謝您的尊重!

總結(jié)

以上是生活随笔為你收集整理的php tea 算法 源码,PHP教程:TEA算法实现的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 激情五月婷婷综合网 | 综合久久色 | 欧美一级色图 | 天堂网www.| 亚洲精品在线一区二区 | 日本五十路在线 | 女女爱爱视频 | 日韩视频在线观看 | 黄色免费网站在线观看 | 欧美爽妇 | 日韩不卡视频一区二区 | 欧美一区二区免费在线观看 | 一级黄色片看看 | 能直接看的av | 黄色在线免费观看视频 | 不卡久久| 日韩精品卡通动漫网站 | 国产精品主播在线 | 麻豆精品视频免费观看 | 亚洲a视频在线 | 久久久欧美精品sm网站 | 久久影院精品 | 国产一区二区电影 | 我要看免费黄色片 | 国产网红主播精品av | 91在线免费观看网站 | 风韵少妇性饥渴推油按摩视频 | 在线观看www视频 | 国精品一区二区 | 理想之城连续剧40集免费播放 | 五月综合视频 | 天天做天天爱天天做 | 亚洲男人天堂电影 | 欧洲性猛交 | 国产乱大交 | 麻豆视频传媒 | 日本午夜精品理论片a级app发布 | 少妇太紧太爽又黄又硬又爽 | 免费毛片软件 | 欧美精品色哟哟 | 国产剧情在线 | 18在线观看免费入口 | www.97av.com| 中文字幕在线看人 | 亚洲精品视频免费 | 久久久久久98 | 欧美日韩国产中文字幕 | av狠狠干| 国产精品人人人人 | 男生插女生网站 | 欧美影视一区二区 | 天天综合中文字幕 | 欧美在线视频免费观看 | 色综合日韩 | 999福利视频| 天天色天天插 | 天天色视频 | 天堂素人 | 污黄网站在线观看 | 亚洲精品视频观看 | 亚洲丝袜在线视频 | 日日操日日摸 | 国产亚洲精品久久久久婷婷瑜伽 | 久本草精品 | 国产高清免费在线播放 | 51吃瓜网今日吃瓜 | 国产精品毛片视频 | 中文无码日韩欧 | 香蕉视频在线观看网站 | 性史性dvd影片农村毛片 | 日韩欧美高清在线 | 欧美片| 国产黄色片在线观看 | 国产精品综合一区二区 | 青青草成人免费视频 | 少妇高潮一69aⅹ | 欧美精品一卡二卡 | 少妇视频网站 | 日韩人妻一区二区三区 | 无码国产伦一区二区三区视频 | 久草日韩| 中文字幕色 | 日本一区免费看 | 欧美日韩欧美日韩在线观看视频 | 美女视频在线观看免费 | 好吊妞一区二区三区 | 欧美视频在线观看一区 | 成人性色生活片 | 不卡一区二区三区四区 | 国产一卡二卡在线播放 | 国产日韩欧美精品 | 久久精品视频8 | 久久久久久久久免费视频 | 18性xxxxx性猛交 | 久久亚洲精品无码va白人极品 | 成人午夜免费福利 | 欧美国产乱视频 | av在线播放观看 | 精品国自产在线观看 |