RSA hoàn toàn không lấy mật khẩu. Các ký hiệu chỉ đơn giản là không chính xác.
RSASSA-PSS lấy khóa riêng và tin nhắn rồi tạo chữ ký. Chữ ký đó có thể được xác minh bởi bất kỳ ai có chữ ký, thông báo và khóa chung.
RSAES-OAEP nhận một khóa chung và một tin nhắn ngắn (hầu như luôn là khóa đối xứng) và mã hóa tin nhắn đó (khóa đối xứng) để chỉ người có khóa riêng tư tương ứng mới có thể giải mã được. Điều này thực sự không được thực hiện nhiều, vì trao đổi khóa ECDH ít tốn tài nguyên hơn và dễ thực hiện an toàn hơn một chút.
Đối với phần thứ hai của câu hỏi của bạn, nó cũng không chính xác. SHA-1 không phải là Hàm dẫn xuất khóa an toàn và không thể được sử dụng để tạo khóa bí mật dùng chung một cách an toàn. Hàm dẫn xuất khóa thực như HKDF hoặc Blake3 cần 2-4 đầu vào: độ dài để xuất (tùy chọn, một số chỉ xuất giá trị 256 bit), một số Tài liệu khóa ban đầu (thường là bí mật được chia sẻ do trao đổi ECDH), một loại muối (tùy chọn, có thể được tạo nội bộ) và giá trị phân tách miền (được sử dụng để đảm bảo rằng các hoạt động khác nhau có thể có các khóa khác nhau ngay cả khi chỉ có một bí mật chung).
Nếu bạn muốn mã hóa tin nhắn thành khóa công khai của người nhận bằng Python, hãy sử dụng pysodium và các phương thức crypto_box. Nếu bạn muốn mã hóa thư bằng mật khẩu, hãy sử dụng phương thức crypto_pwhash để lấy khóa và phương thức crypto_secretbox để mã hóa bằng khóa dẫn xuất.