이 글은 기계 번역의 미러 문서이며, 원본 기사로 바로 이동하려면 여기를 클릭해 주세요.

보기: 2344|회답: 3

[출처] RSA 알고리즘(. NET) 복호화

[링크 복사]
2024-9-6 08:44:03에 게시됨 | | | |
요구사항: 프로젝트 내 사용자의 원본 비밀번호를 백엔드에 전달해야 하며, 백엔드는 비밀번호를 가진 제3자 인터페이스를 호출해야 합니다. 비밀번호가 평문으로 제대로 전송되지 않거나, 패킷 캡처 도구에 포착되면 비밀번호가 유출됩니다. RSA 알고리즘이 결국 채택되었으며, 프론트엔드는 공개키를 사용해 비밀번호를 암호화하고, 백엔드는 개인 키를 사용해 복호화했습니다.

프론트엔드는 jsencrypt 패키지인 address를 사용합니다:하이퍼링크 로그인이 보입니다.

백엔드가 .NET 5 이상이라면 내장 함수를 사용할 수 있고, 그렇지 않다면 다음 매개변수를 사용해 주세요:

.NET/C# RSA PEM 형식 암호화 및 복호화
https://www.itsvse.com/thread-10602-1-1.html

먼저, openssl을 사용해 공개 및 개인 키를 생성하세요. 이 글은 리눅스에서 직접 실행됩니다(Windows 시스템에서 openssl을 다운로드하여 설치하세요). 명령어는 다음과 같습니다:



캣 rsa_1024_priv.팜
-----RSA 개인 키 시작-----
MIICXAIBAAKBgQDTyd/KP2JuidA0JA+7i8FCzKCdn2Gq/ChfLpnBFcHb9vKgZb6n
aK2UXynpTbO6l5CVU4KG7w/hUJgxUQsSzNIsnPQuNpop/FO9doiV5l/94Hcuj17f
2AAEQGkWC8EvZBoMDr2JRVDBEji3l6mHXmTduCjH7VpuQyJRGHzWQu8HnwIDAQAB
AoGARat4Ifkd8U0Gn9BpGIIN7mKQR6nhoDTZNw6GZ903a5veDuPJhxrJVzDDAcuc
3znyxxy0qJzF9ZHkrvyBDwsv7AGyVfg6fwwLxvrsJS1MpwKLY3yqbPVk3hnaOECO
915XcbkVua+DGVjwtyX37CxPuSDaH2ut+kIQ3xci+BreSpkCQQD3FfgYELZgrHDk
JQaSiILCnFbld+NBuTm4CHPCN+XDZwzvC8sH4M9my7kznxAQosHbm+aGaOK1k4+k
zKgaiJzVAkEA223oSa7UMyMf/K/dEFmGjKBWQYP7gjLxcsxDHdwTpKHBEuZ32IT2
nuvYxsaOATqg8WABAJHWmT2Rj/joeAx8owJBANaLovLygAoNcbEIXV6bXj8xlVqG
8TO+a9narPk1pDI5psdijBb5I930g4nJUh+/02inRFHtfP2Bdbb5ZfY0LUkCQDxJ
iCamaBrcra8pSl1xm2wLqWc6seFlyby2rkIH80WqQ3fD5m2QqomjVt3WM7HWv91R
eTUE3KchqVqbEpPZKm0CQD7VMRAb1NNH+BNjuGxZB3AQSJvRXhpJ+w3ckSP6IX0L
N0OoHtvH5lvtm7hfB5nDUBYhqN3wj7wDNiK9Vrdyqow=
-----RSA 개인 키 종료-----
캣 rsa_1024_pub.팜
-----공개키 시작-----
MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDTyd/KP2JuidA0JA+7i8FCzKCd
n2Gq/ChfLpnBFcHb9vKgZb6naK2UXynpTbO6l5CVU4KG7w/hUJgxUQsSzNIsnPQu
Npop/FO9doiV5l/94Hcuj17f2AAEQGkWC8EvZBoMDr2JRVDBEji3l6mHXmTduCjH
7VpuQyJRGHzWQu8HnwIDAQAB
-----공개키 종료-----

다음 소스 코드로 새로운 index.html 웹페이지를 생성하세요:

관광객 여러분, 이 게시물의 숨겨진 내용을 보고 싶으시다면 부탁드립니다회답


다음 소스 코드로 새로운 .NET 8 콘솔 애플리케이션을 생성하세요:


브라우저를 사용해 index.html 웹페이지를 열고 암호화를 테스트한 후 .NET 애플리케이션을 사용해 복호화하세요. 다음 그림에 나와 같이 설명됩니다:



참고: 매우 긴 문자열의 암호화와 복호화 모두 실패할 수 있으며, 분할 암호화와 복호화가 필요합니다. 구체적인 내용은 다음을 참고하시면 됩니다:하이퍼링크 로그인이 보입니다.

(끝)




이전의:Docker는 최신 버전(대응) 이미지를 확인합니다
다음:Jenkins (7) 리눅스 서버가 Jenkins 버전 2.462.1을 빌드합니다
 집주인| 2024-10-14 15:51:48에 게시됨 |
2048 길이의 공개 및 개인 키 생성

 집주인| 2024-10-14 17:10:13에 게시됨 |
또 다른 프론트엔드 RSA 암호화 및 복호화 라이브러리인 node-forge는 자바스크립트로 TLS 프로토콜을 완전히 네이티브로 구현한 것으로, 암호화 유틸리티 세트와 대규모 네트워크 자원을 활용하는 웹 애플리케이션 개발을 위한 도구 세트입니다.

https://www.npmjs.com/package/node-forge

이미 Angular에서 사용 중이며, npm과 함께 다음과 같이 설치되었습니다:

프론트엔드 코드는 다음과 같습니다:

백엔드 .NET 코드:



 집주인| 2024-10-16 08:23:58에 게시됨 |
RSA는 최대 데이터 크기를 암호화합니다
하이퍼링크 로그인이 보입니다.


RSA 암호화 알고리즘에서는 인코딩할 최대 블록 크기가 선택한 키 길이에 따라 달라집니다. 일반적으로 RSA 키는 1024비트, 2048비트, 또는 4096비트 길이일 수 있습니다.

1024비트 키의 경우 최대 블록 크기는 117바이트입니다. 즉, 1024비트 키를 사용할 때 최대 암호화할 수 있는 데이터 블록은 117바이트입니다.

2048비트 키의 경우 최대 블록 크기는 245바이트입니다. 즉, 2048비트 키를 사용할 때 최대 데이터 블록은 245바이트입니다.

4096비트 키의 경우 최대 블록 크기는 512바이트입니다. 즉, 4096비트 키를 사용할 때 최대 데이터 블록은 512바이트입니다.

면책 조항:
Code Farmer Network에서 발행하는 모든 소프트웨어, 프로그래밍 자료 또는 기사는 학습 및 연구 목적으로만 사용됩니다; 위 내용은 상업적 또는 불법적인 목적으로 사용되지 않으며, 그렇지 않으면 모든 책임이 사용자에게 부담됩니다. 이 사이트의 정보는 인터넷에서 가져온 것이며, 저작권 분쟁은 이 사이트와는 관련이 없습니다. 위 내용은 다운로드 후 24시간 이내에 컴퓨터에서 완전히 삭제해야 합니다. 프로그램이 마음에 드신다면, 진짜 소프트웨어를 지원하고, 등록을 구매하며, 더 나은 진짜 서비스를 받아주세요. 침해가 있을 경우 이메일로 연락해 주시기 바랍니다.

Mail To:help@itsvse.com