cuốn sách gpt4 ai đã làm

php - mã hóa mcrypt thêm chuỗi s '%00' vào cuối chuỗi

In lại Tác giả: Hồ Xil Thời gian cập nhật: 2023-11-01 13:18:27 31 4
mua khóa gpt4 Nike

Sử dụng OAuth và sử dụng chức năng sau để mã hóa khóa bằng chuỗi mà chúng tôi gọi là "foo" (thực ra là mã thông báo OAuth)

mã hóa chức năng công cộng( $text )
{
// thêm cuối dấu phân cách văn bản
$data = mcrypt_encrypt( MCRYPT_RIJNDAEL_128, $this->key, $text, MCRYPT_MODE_ECB, $this->iv );
trả về base64_encode( $data );
}

Khi tôi giải mã nó bằng hàm nghịch đảo, tôi kết thúc bằng:

Chức năng:

    giải mã chức năng công cộng( $text )
{
$text = base64_decode( $text );
trả về mcrypt_decrypt( MCRYPT_RIJNDAEL_128, $this->key, $text, MCRYPT_MODE_ECB, $this->iv );
}

kết quả:

foo%00%00%00%00%00%00%00%00%00%00%00%00%00%00

biên tập:

Nhìn kỹ hơn một chút, tôi nhận ra nó thực sự được mã hóa URL %00, điều đó có nghĩa là chuỗi của tôi bằng cách nào đó được đệm bằng các ký tự null? Vì vậy, tôi hiện đang sử dụng Trim() để loại bỏ chúng, nhưng tôi muốn hiểu lý do tại sao điều này lại xảy ra.

câu trả lời hay nhất

Rijndael là một chặn mật mã , có nghĩa là nó hoạt động trên một khối dữ liệu có độ dài cụ thể (trong trường hợp này là 128 bit). Điều này có nghĩa là nếu độ dài của văn bản đầu vào không phải là bội số của kích thước khối thì nó phải được đệm cho vừa. Trong trường hợp này, phần đệm bằng 0; có thể có nhiều phần khác; sơ đồ đệmcó thể được sử dụng, nhưng bạn phải áp dụng chúng theo cách thủ công nếu bạn muốn chúng hoạt động với mcrypt của PHP.

Về mã hóa php - mcrypt thêm chuỗi s '%00' vào cuối chuỗi, chúng tôi đã tìm thấy một câu hỏi tương tự trên Stack Overflow: https://stackoverflow.com/questions/5672012/

31 4 0
Chứng chỉ ICP Bắc Kinh số 000000
Hợp tác quảng cáo: 1813099741@qq.com 6ren.com
Xem sitemap của VNExpress