麻辣堂|资源主站|开发论坛|在线手册
首页 Apache Linux Java MySQL 注册帮助 
PHP项目开发组是PHP开发资源网于2007组年建成立的项目开发团队,目前核心开发成员有27人, 项目协作成员8名.下设7个开发组,主要承接大/中型网站项目开发任务。

    由于开发任务较多,人员比较紧张,现面向社会招聘全职或者兼职开发人员,不管你是在校大学生,还是全职开发人员,以及SOHO都可以联系本站,我们可以长期合作,并为您带来丰厚的报酬。
  您现在的位置:PHP开发资源网 > 麻辣堂 > 详细资料
待解决
RMB求助有关数据类型转换函数的问题!Binary(16)数据类型!
悬赏分:20 - 2007年08月22日

是这样的,想用PHP写一个简单的网游(天堂2)注册程序!但是游戏用户数据中的 password 用的是 binary(16)这种数据类型!

求一方法,把普通的 password 类型转换为 binary(16) 来储存!

在网上找了很多相关函数的资料~似乎不能直接转换成功!
本人对数据类型不了解,求助大家,写出转化函数的定酬谢!

下面是一段ASP的转化函数,大家可以参考一下:

[php]
<%
public function Encrypt(password)
dim key(16)
dim one,two,three,four
dim i
dim dstbytes(16)

bu_String2Bytes password, key
bu_String2Bytes password, dstbytes

one= bu_Bytes2Int(key, 0) * 213119 + 2529077
one = one - Fix(one/ 4294967296) * 4294967296
two = bu_Bytes2Int(key, 4) * 213247 + 2529089
two = two - Fix(two/ 4294967296) * 4294967296
three = bu_Bytes2Int(key, 8) * 213203 + 2529589
three = three - Fix(three/ 4294967296) * 4294967296
four = bu_Bytes2Int(key, 12) * 213821 + 2529997
four = four - Fix(four/ 4294967296) * 4294967296


call MyuwSplit(one, key(0), key(1), key(2), key(3))
call MyuwSplit(two, key(4), key(5), key(6), key(7))
call MyuwSplit(three, key(8), key(9), key(10), key(11))
call MyuwSplit(Four, key(12), key(13), key(14), key(15))

dstbytes(0) = dstbytes(0) xor key(0)

for i=1 to 15
dstbytes(i) = dstbytes(i) xor dstbytes(i-1) xor key(i and 15)
next

for i=0 to 15
if dstbytes(i) = 0 then
dstbytes(i) = &H66
end if
next

encrypt = "0x"
for i=0 to 15
if dstbytes(i) < &H10 then
encrypt = encrypt & "0" & Hex(dstbytes(i))
else
encrypt = encrypt & Hex(dstbytes(i))
end if
next
end function

Public Sub MyuwSplit(ByRef w, a, b, C, d)
d = Fix(w / &H1000000)
c = Fix((w - d * &H1000000) / &H10000)
b = Fix((w - d * &H1000000 - c * &H10000) / &H100)
a = Fix((w - d * &H1000000 - c * &H10000 - b * &H100))
End Sub

public Function bu_Bytes2Int(aBytes(), index)
dim rslt
rslt = aBytes(index) + aBytes(index+1)*256 + aBytes(index+2)*65536 + aBytes(index+3)*16777216

bu_Bytes2Int = rslt
End Function

Public Function bu_String2Bytes(str, aBytes())
nBytes = Len(str)
For i = 0 To nBytes - 1
aBytes(i) = Asc(Mid(str, i + 1, 1))
Next

bu_String2Bytes = nBytes

End Function
%>

[/php]

可以直接联系我:
QQ:3750347

[ 本帖最后由 XLEdoo 于 2006-12-14 04:18 PM 编辑 ]

提问者:XLEdoo   08-22 12:12
答复
路过。。。顺便帮顶:)
回答者:玉米づ冰冻可乐 - 瓦岗村民 8-22 09:10
我也来回答:
不管你有没有帮助我们,瓦岗寨8万村民将感谢你。。。。。

为防止灌水,您需要计算一道数学题: 答案:
21 + 50 = ? 请将计算结果填在上面

 
[]
©2007 PhpRes.COM