Decrpyt AES-CCM Python против PHPPhp

Кемеровские программисты php общаются здесь
Ответить
Anonymous
 Decrpyt AES-CCM Python против PHP

Сообщение Anonymous »

Я пытаюсь расшифровать текст, полученный со смарт-устройства. Это работает в Python, но не работает в PHP. Я просто получаю пустой ответ от openssl_decrypt, в openssl_error_string() нет ни ошибок, ни предупреждений, ни ошибок. Мне нужно сделать это на PHP. Я уже прочитал этот ответ https://stackoverflow.com/a/61797909, но до сих пор не могу исправить свой PHP-скрипт. Поскольку я получаю данные с устройства, я не могу изменить длину nonce, если это может быть проблемой (это 13 байт).
Модифицированный AES -CCM-версия этого примера https://www.geeksforgeeks.org/how-to-en ... hp-string/ работает, поэтому, похоже, это не проблема с моей установкой PHP.
Рабочий Python-скрипт (не волнуйтесь, ключ и одноразовый номер будут изменены):

Код: Выделить всё

from __future__ import annotations

import binascii
import base64

from cryptography.hazmat.primitives.ciphers.aead import AESCCM

def decrypt_payload(
payload: bytes, mic: bytes, key: bytes, nonce: bytes
) -> dict[str, float] | None:
cipher = AESCCM(key, tag_length=4)
try:
data = cipher.decrypt(nonce, payload + mic, None)
print("Decryption succeeded, decrypted data:", data.hex())
except ValueError as error:
print()
print("Decryption failed:", error)
return None

# =============================
# main()
# =============================
def main() -> None:
payload = bytes(bytearray.fromhex("73ad3f07fe89"))
mic = bytes(bytearray.fromhex("d8c82d06"))
key = bytes(bytearray.fromhex("D77B34645356FB1333BAD6357B38CCCF"))
nonce = bytes(bytearray.fromhex("7cc6b66242d3e3fc4512ac1267"))
decrypt_payload(payload=payload, mic=mic, key=key, nonce=nonce)

if __name__ == "__main__":
main()
не рабочий PHP-код: Заранее спасибо за любую подсказку!


Подробнее здесь: https://stackoverflow.com/questions/791 ... hon-vs-php
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Php»