第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問(wèn)題,去搜搜看,總會(huì)有你想問(wèn)的

PHP 將十六進(jìn)制字符串轉(zhuǎn)換為字節(jié)數(shù)組 - 將 VB.Net 轉(zhuǎn)換為 PHP

PHP 將十六進(jìn)制字符串轉(zhuǎn)換為字節(jié)數(shù)組 - 將 VB.Net 轉(zhuǎn)換為 PHP

PHP
動(dòng)漫人物 2021-11-26 15:59:17
我正在編寫(xiě)一個(gè)訪(fǎng)問(wèn)加密 MySQL 數(shù)據(jù)庫(kù)的 PHP 網(wǎng)站。該數(shù)據(jù)庫(kù)目前是 VB.Net Windows 窗體程序的后端。這一切正常,但我希望 PHP 網(wǎng)站訪(fǎng)問(wèn)一些數(shù)據(jù)并能夠?qū)ζ溥M(jìn)行解密/加密。這些字段使用最初由 David Ireland 在 VB6 中編寫(xiě)的 Blowfish 代碼進(jìn)行加密,并由 Todd Acheson 通過(guò)我自己的一些調(diào)整進(jìn)行轉(zhuǎn)換。對(duì)于我見(jiàn)過(guò)的 PHP Blowfish 示例,$iv 是隨機(jī)設(shè)置的,但我需要將其設(shè)置為與在 VB 中創(chuàng)建的相同,因此我試圖將 VB 代碼轉(zhuǎn)換為 PHP。我已經(jīng)開(kāi)始逐行轉(zhuǎn)換代碼,從技術(shù)角度來(lái)看,似乎還可以,但是測(cè)試它的第一部分并沒(méi)有提供與 VB 相同的結(jié)果設(shè)置密鑰:    Dim aKey() as Byte = cv_BytesFromHex(MySecretKey)        M = Len(sInputHex) \ 2        ReDim aBytes(M - 1)        For i = 0 To M - 1            Dim x = "&H" & Mid(sInputHex, i * 2 + 1, 2)            Debug.Print(x + " " + Val(x).ToString)            aBytes(i) = Val(x)        Next        cv_BytesFromHex = aBytes 'CopyArray(aBytes)        Return cv_BytesFromHex    End Function將此函數(shù)轉(zhuǎn)換為 PHP5。public function cv_BytesFromHex($inputstring){    // Returns array of bytes from hex string in big-endian order    // e.g. shex="fedc80" will return array {&hfe, &hdc, &h80}    $i=0;    $m=0;    if (strlen($inputstring)/2 <> (int)(strlen($inputstring)/2)) {        $inputstring = "0".$inputstring;    }    $m = strlen($inputstring)/2;    echo 'Length '.strlen($inputstring).' = '.$m." elements</br>";    $abytes=array_fill(0,$m-1,0) ;    for ($i=0; $i<=$m-1;$i++) {        $raw=substr($inputstring, $i * 2 , 2);        $hexed=hexdec($raw);        echo 'Raw ='.$raw.' = '.$hexed.'</br>';        $abytes[$i]=$hexed;    }    return $abytes;}使用“1check”鍵進(jìn)行測(cè)試。VB輸出:&H1C 28&Hhe 0&Hck 12PHP輸出:Length 6 = 3 elementsRaw =1c = 28Raw =he = 14Raw =ck = 12所以..在這個(gè)例子中,“1C”和“ck”給了我相同的值,但“he”沒(méi)有另一個(gè)例子:鍵 =10stack等等&H01 1&H0s 0&Hta 0&Hck 12phpLength 8 = 4 elementsRaw =01 = 1Raw =0s = 0Raw =ta = 10Raw =ck = 12這個(gè)有效:key =1234wxyz等等&H12 18&H34 52&Hwx 0&Hyz 0phpRaw =12 = 18Raw =34 = 52Raw =wx = 0Raw =yz = 0有誰(shuí)知道為什么?
查看完整描述

1 回答

?
小唯快跑啊

TA貢獻(xiàn)1863條經(jīng)驗(yàn) 獲得超2個(gè)贊

所以,這里沒(méi)有錯(cuò)誤。h被hexdec忽略,只e被解碼。原因... https://en.wikipedia.org/wiki/Hexadecimal沒(méi)有h:)


并且在 VBA Val函數(shù)中返回 0,原因he是無(wú)效的十六進(jìn)制組合


<?php

function myHex($str)

{

  if ($str === dechex(hexdec($str))) {

    return hexdec($str);

  }


  return 0;

}


var_dump(myHex("he"));  // returns 0


查看完整回答
反對(duì) 回復(fù) 2021-11-26
  • 1 回答
  • 0 關(guān)注
  • 306 瀏覽

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢(xún)優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)