>  기사  >  백엔드 개발  >  RSA 개인 키를 사용하여 암호화된 메시지를 해독하는 방법

RSA 개인 키를 사용하여 암호화된 메시지를 해독하는 방법

PHPz
PHPz앞으로
2024-02-09 15:30:20842검색

如何使用 RSA 私钥解密加密消息

php 편집기 Youzi가 RSA 개인 키를 사용하여 암호화된 메시지를 해독하는 방법을 소개합니다. RSA는 공개 키와 개인 키를 생성하여 정보를 암호화하고 해독하는 비대칭 암호화 알고리즘입니다. RSA를 사용하여 암호화된 메시지를 해독하는 경우 해당 개인 키가 있어야 하며 개인 키를 사용하여 암호화된 메시지를 해독해야 합니다. 암호 해독 과정에서 개인 키는 암호화된 메시지를 해독하고 이를 원래의 일반 텍스트 정보로 복원합니다. RSA 개인 키 암호 해독을 마스터하면 중요한 정보를 보다 안전하게 전달하고 보호할 수 있습니다. 다음에는 RSA 개인키 복호화에 대한 단계와 주의사항을 자세히 소개하여 이 암호화 및 복호화 기술을 더 잘 이해하고 적용할 수 있도록 도와드리겠습니다.

질문 내용

공개 키가 필요한 API에 액세스하고 있습니다. 그러면 벡터와 토큰이 포함된 응답이 암호화된 형식으로 반환됩니다(이 시점에서 그들은 내 공개 키를 사용하여 그렇게 하는 것 같습니다). 암호를 해독하려면 내 개인 키를 사용해야 합니다. 개인 키와 공개 키는 모두 인코딩됩니다. 기본적으로 https://www.devglan.com/online-tools/rsa-encryption-decryption과 같은 것을 구현하고 싶습니다.

내가 사용한 키(역시 가상 키입니다!) 공개: migfma0gcsqgsib3dqebaquaa4gnadcbiqkbgqcbi1sofn/zpsprblpaw/c4gdkho6idv3j/p5leeupasbvvpq6wy7tf6lfbstcirq48omd34p3z5sx1jyy15oxnxnkbpoodv8byqdnk/lffcz5 720yunka0xihuol/zi0c0pwb6hkaakt0sbeglbcux6yr6sbjbfai2ofikk/mgswidaqab

비공개: miicdqibadanbgkqhkig9w0baqefaascal8wggjbageaaogbajsjvkh839k+ymsgu8bb9zgymoejoh2/cn8/ksqrskcxtvwmrrbjtn/qv8fjnykurjygwpfinfpmxfwnjlxk5c3e0og mg52/wfhb2cr8t8vxnnvbtjq2rrtgidsix9mlrzq9yhoeqacrpsxt4ytsk5frkvpjskevojah8gqt+yazagmbaaecgya5kaed/z8tmslujhxgajzzgldkczms6uhxasdw/1fwxooeatbs5ha7gumcerhkib sps8hmlkxgvp2sin/8fb9mo1yhaan2g52+cvpr2qmeeuowfuztm/gllt4ruib7smc5uxl7sw55bghrxqdfhjskow4rpga+irjuysy5gizswqjbandtff+vwpkrr8mhyvagollkra1cfn8g9x1ega3mgwpny oh5nmjfe0ibaxo69jlrnbajk+oxnpsyh/azzseehascqqc+f15dvsjh8tjsxz8rcdpmdp+p9j/eoi7+v0igwkaasjczfywxeckaaipvwit7fkj3n83nj0ppm9xwh22cygszakaaviwotleoken71v/tt kauyt32ahgwnkckwvwmv4/ws6rflcnvdxr/cnkcgeqlkxtlkkp /clg3gy6o2ymi5xnaka8l4jsycryb8sw0rlvomoq2vz/lacrnkzsecpywk4uupcu9ffrutaje6mnaj2pna9wjxw5c+exk5rcmq7rcgrxakajize3jbwuu3mx5tdmhfgcviz38jnfsujfryblkanjegod 4zcxrzxfo7ikda+ptfmre7ztnu7wucm0yut2qa0j

암호화된 메시지: buy5nr/pujncfxeuxqd4oxkcvmo2jilwh5vkzlz1udm4m0vxdv4ba1oanhbttqetqeny1vfw2v4v9pw5hmdics1sdgn69ceehjbned46rk1evtmvqzgp9ha54axie5v/1t dkywj+aft0fxvj4kffxgxezf19q8lb2aojcaejk6s= 인코딩 부분을 살펴보겠습니다. env 파일에서 개인 키와 공개 키를 검색하고 있습니다.

으아악

이제 API를 실행하고 결과를 얻은 후 rsa.decryptoaep 函数解密消息,但它一直给我 [] crypto/rsa: 解密错误 를 사용해 보았습니다. 패키지 자체 내부에서 디버깅한 후 여기에 오류가 발생합니다.

으아악

if 문의 결과: k = 128 hash.size()*2+2=66 cipher = 172 처음에는 개인 키(제 경우에는 env 파일에서 가져온 문자열)를 rsa 개인 키로 변환하는 데 문제가 있었습니다. 문제를 해결하기 위해 제가 수행한 작업은 다음과 같습니다.

으아악

그런 다음 다음과 같이 변환합니다.

으아악

내가 뭘 잘못했나요?

해결 방법

비밀번호 유형 선택 필드에서 rsa을 선택한 경우 devglan 웹 사이트는 pkcs#1 v1.5를 패딩으로 적용하므로 rsa.decryptpkcs1v15() 必须为用过的。私钥是 base64 编码的 pkcs#8 der 密钥,可以使用 x509.parsepkcs8privatekey()를 가져옵니다.

함께:

으아악

위 내용은 RSA 개인 키를 사용하여 암호화된 메시지를 해독하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 stackoverflow.com에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제