全球主机交流论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

CeraNetworks网络延迟测速工具IP归属甄别会员请立即修改密码
12
返回列表 发新帖
楼主: Sakuya

如何设计一套自己的编码和加密规则?

[复制链接]
发表于 2018-12-23 20:43:39 | 显示全部楼层
hotsky 发表于 2018-12-23 20:13
你一个人想怎么玩就怎么玩
一群人, 标准说的算

然而不可以将自己写的加解密方式写进CS端进行加解密吗?用了该产品的CS端就可以单独加解密,所以为什么不可以一群人玩呢???
发表于 2018-12-23 20:48:14 | 显示全部楼层
量子计算机普及前 aes256就足够啦
                                
发表于 2018-12-23 21:02:37 | 显示全部楼层
aes256不就足够了。。。。
zip压缩算法了解一下:
https://**blogs.com/esingchan/p/3958962.html
发表于 2018-12-23 21:04:40 | 显示全部楼层


密码学历来闭门造车的都死得很惨。。。。比如飞利浦
发表于 2018-12-23 21:06:13 | 显示全部楼层
kagurazakashira 发表于 2018-12-23 20:22
- 压缩:比输入的信息要短
- 可逆:能通过编码后的信息还原出编码前的信息

huffman好像就是?虽然并没什么用(
发表于 2018-12-23 21:09:08 | 显示全部楼层
Sakuya 发表于 2018-12-23 20:28
zip 就是可逆的压缩

数据载体不一样,网络编码和文件没有可比性。
发表于 2018-12-23 21:26:20 | 显示全部楼层
私钥随便玩,自己窝里横
发表于 2018-12-23 21:27:20 来自手机 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
发表于 2018-12-23 21:33:24 | 显示全部楼层
不要自己造轮子,特别是在密码学方面。4楼是正确答案。
发表于 2018-12-24 09:04:00 | 显示全部楼层
不支持压缩  其他都支持  基于DZ的
  1. public static function authcode($string, $operation = 'DECODE', $key = '', $expiry = 0)
  2.     {
  3.         $ckey_length = 4;

  4.         $key = md5($key ? $key : "website2018");
  5.         $keya = md5(substr($key, 0, 16));
  6.         $keyb = md5(substr($key, 16, 16));
  7.         $keyc = $ckey_length ? ($operation == 'DECODE' ? substr($string, 0, $ckey_length) : substr(md5(microtime()), -$ckey_length)) : '';

  8.         $cryptkey = $keya . md5($keya . $keyc);
  9.         $key_length = strlen($cryptkey);

  10.         $string = $operation == 'DECODE' ? self::base64url_decode(substr($string, $ckey_length)) : sprintf('%010d', $expiry ? $expiry + time() : 0) . substr(md5($string . $keyb), 0, 16) . $string;
  11.         $string_length = strlen($string);

  12.         $result = '';
  13.         $box = range(0, 255);

  14.         $rndkey = array();
  15.         for ($i = 0; $i <= 255; $i++)
  16.         {
  17.             $rndkey[$i] = ord($cryptkey[$i % $key_length]);
  18.         }

  19.         for ($j = $i = 0; $i < 256; $i++)
  20.         {
  21.             $j = ($j + $box[$i] + $rndkey[$i]) % 256;
  22.             $tmp = $box[$i];
  23.             $box[$i] = $box[$j];
  24.             $box[$j] = $tmp;
  25.         }

  26.         for ($a = $j = $i = 0; $i < $string_length; $i++)
  27.         {
  28.             $a = ($a + 1) % 256;
  29.             $j = ($j + $box[$a]) % 256;
  30.             $tmp = $box[$a];
  31.             $box[$a] = $box[$j];
  32.             $box[$j] = $tmp;
  33.             $result .= chr(ord($string[$i]) ^ ($box[($box[$a] + $box[$j]) % 256]));
  34.         }

  35.         if ($operation == 'DECODE')
  36.         {
  37.             if ((substr($result, 0, 10) == 0 || substr($result, 0, 10) - time() > 0) && substr($result, 10, 16) == substr(md5(substr($result, 26) . $keyb), 0, 16))
  38.             {
  39.                 return substr($result, 26);
  40.             }
  41.             else
  42.             {
  43.                 return '';
  44.             }
  45.         }
  46.         else
  47.         {
  48.             return $keyc . str_replace('=', '', self::base64url_encode($result));
  49.         }
  50.     }

  51.     public static function base64url_encode($data) {
  52.         return rtrim(strtr(base64_encode($data), '+/', '-_'), '=');
  53.     }

  54.     public static function base64url_decode($data) {
  55.         return base64_decode(str_pad(strtr($data, '-_', '+/'), strlen($data) % 4, '=', STR_PAD_RIGHT));
  56.     }
复制代码
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|全球主机交流论坛

GMT+8, 2026-4-16 18:04 , Processed in 0.060434 second(s), 9 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表