DELPHI盒子
!实时搜索: 盒子论坛 | 注册用户 | 修改信息 | 退出
检举帖 | 全文检索 | 关闭广告 | 捐赠
技术论坛
 用户名
 密  码
自动登陆(30天有效)
忘了密码
≡技术区≡
DELPHI技术
lazarus/fpc/Free Pascal
移动应用开发
Web应用开发
数据库专区
报表专区
网络通讯
开源项目
论坛精华贴
≡发布区≡
发布代码
发布控件
文档资料
经典工具
≡事务区≡
网站意见
盒子之家
招聘应聘
信息交换
论坛信息
最新加入: cdk19821
今日帖子: 32
在线用户: 16
导航: 论坛 -> DELPHI技术 斑竹:liumazi,sephil  
作者:
男 yesin119 (yesin119) ★☆☆☆☆ -
盒子活跃会员
2018/2/1 11:41:24
标题:
乐视一段PHP代码密钥算法,改成Delphi,请教各路大神,先谢过:) 浏览:1459
加入我的收藏
楼主: 对PHP基本一窍不通,所以只能来论坛问问,是乐视电视的一个接口:

private function parse(<密钥>) {
        return substr(base64_encode(substr(date('Y/m/d H-i-s', <time>), 0, 4) . <密钥> . substr(date('Y/m/d H-i-s', <time>), 4, count(str_split((String) date('Y/m/d H-i-s', <time>))) - 1)), -7);
}

我们的这个软件需要调用它的接口,每个接口都需要传入这个函数返回的结果。
----------------------------------------------
-
作者:
男 wang_80919 (Flying Wang) ★☆☆☆☆ -
普通会员
2018/2/1 12:34:04
1楼: 从 0 开始 4 个,那不就是 年份吗
从 4 开始 的剩余部分,不就是 月日 时分秒吗?
substr -7 应该是取后 7 个字符。

乐视不是倒了吗?
----------------------------------------------
(C)(P)Flying Wang
作者:
男 yesin119 (yesin119) ★☆☆☆☆ -
盒子活跃会员
2018/2/1 15:28:21
2楼: 这样搞?
function le20_parse(): string;
var
  sToBase64Value, sBase64: string;
  beBase64: TIdEncoderMIME;
begin
  sToBase64Value := LeftStr(FormatDatetime('YYYY/MM/DD', Now), 4) + <密钥> +
    Copy(FormatDatetime('YYYY/MM/DD HH-MM-SS', Now), 5, 20);
  beBase64 := TIdEncoderMIME.Create;
  try
    sBase64 := beBase64.EncodeString(sToBase64Value); // 对数组进行编码
    Result := RightStr(sBase64, 7);
    // beBase64.Encode(InStream, OutStream); // 对内存流进行编码
  finally
    beBase64.Free;
  end;
end;
----------------------------------------------
-
作者:
男 wang_80919 (Flying Wang) ★☆☆☆☆ -
普通会员
2018/2/1 16:56:12
3楼: 就怕你的 密钥 带有 双子节的数据。
鬼知道 php 的 base64 采用什么编码的。
----------------------------------------------
(C)(P)Flying Wang
作者:
男 bahamut8348 (leonna) ★☆☆☆☆ -
普通会员
2018/2/1 23:14:14
4楼: 挺坑爹的代码。。
反复的用date('Y/m/d H-i-s', <time>)也不知道几个意思。。
还有这个地方count(str_split((String) date('Y/m/d H-i-s', <time>))) - 1
要计算字符串长度直接用strlen或者mb_strlen不就完了么。。。

base64倒是一般不会有问题。不过一般这类动态语言用的都是utf8编码。在处理字符串的时候注意一下编码一般就不会有问题。
----------------------------------------------
--
信息
登陆以后才能回复
Copyright © 2CCC.Com 盒子论坛 v3.0.1 版权所有 页面执行46.875毫秒 RSS