免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 9665 | 回复: 2
打印 上一主题 下一主题

JAVA 的byte 数组在PHP 中如何表示或者转换? [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2008-11-27 15:15 |只看该作者 |倒序浏览
JAVA 的byte 数组在PHP 中如何表示或者转换?
现在要用PHP 实现一个加密程序,但是只有JAVA代码,俺对JAVA点都不熟
JAVA 代码如下
   
public class Encrypt {
        private static final byte[] enkeystore = { 0x08, 0x02, 0x0b, 0x0c, 0x01, 0x0a, 0x00, 0x0d, 0x07, 0x03, 0x0e, 0x05, 0x0f, 0x06, 0x04, 0x09 };
        public static byte[] encode(byte[] data)
{
        byte[] result = new byte[data.length];
        for (int i = 0; i < data.length; i++)
{
        result[i] += (enkeystore[(data[i] >>> 4) & 0x0F] << 4);
        result[i] += (enkeystore[data[i] & 0x0F]);
        }
        return result;
        }
}


现在我用PHP 写了一个,但是在JAVA用的BYTE 这里不知道如何处理

论坛徽章:
0
2 [报告]
发表于 2008-11-27 18:07 |只看该作者
不需要什么处理.
$str = "\x08\x02..."; 这样就可以表示 bytes[] 数据了
如果有整型数据需要转换参见pack()


其中你描述的代码里的 >>> 这个运算符是否写错了? 不明白它的含义, 我把作为 >> (即右移) 处理了.
对于你的问题, 我书写如下(代码未经测试, 但应该无大问题, 若有也是细节拼写或看眼花呵, 请自行观察)

  1. // php5
  2. <?php

  3. // php5
  4. class Encrypt {
  5. private static $enkeystore = "\x08\x02\x0b\x0c\x01\x0a\x00\x0d\x07\x03\x0e\x05\x0f\x06\x04\x09";

  6. public static function encode($data)
  7. {
  8.    $result = '';
  9.    for ($i = 0; $i < strlen($data); $i++)
  10.    {
  11.      $ch  = ord(substr(self::$enkeystore, (ord($data[$i]) >> 4) & 0x0f, 1)) << 4;
  12.      $ch += ord(substr(self::$enkeystore, ord($data[$i]) & 0x0f, 1));
  13.      $result .= chr($ch);
  14.    }
  15.    return $result;
  16. }
  17. }

  18. $str = "Hightman";
  19. $str2 = Encrypt::encode($str);



  20. echo "origin string: $str\n";
  21. echo "encrypted str: " . hex_str($str2) . "\n";

  22. //
  23. function hex_str($str)
  24. {
  25.         $ret = '';
  26.         for ($i = 0; $i < strlen($str); $i++) $ret .= "\\x" . dechex(ord($str[$i]));
  27.         return $ret;
  28. }
  29. ?>
复制代码

[ 本帖最后由 hightman 于 2008-11-27 18:20 编辑 ]

论坛徽章:
0
3 [报告]
发表于 2008-11-28 11:15 |只看该作者
谢谢指点。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP