Mi escenario es un poco diferente a las preguntas y respuestas existentes Como en este tema y quizás pertenece a más de una categoría, pero como el siguiente código está basado en AppleScript / Shell, pensé que este es el lugar para comenzar.
Escenario
Estoy trabajando en un método de autenticación que implica el cifrado de una contraseña de autenticación en el lado del cliente mediante una clave pública RSA que coincida con mi clave privada (del servidor). Una sal aleatoria está marcada con la contraseña de autenticación para reducir la posibilidad de duplicar texto cifrado.
La cadena cifrada se pasa luego como parámetro a una página PHP donde se descifra, se descarta la sal y se lee la contraseña de autenticación.
Hasta ahora ...
set public_key to "MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDoq9oD/YlxvkvYcKAd06Pn0nKb4bwGYiXFVkL6LGI3gzDFwxAKjt4AVE3pRHgi0tTPVHkGZRfH723+mF0Fe5Vdq7mGDzKB7EAWzkPLThxIRmvCbnbI3o/OCcRlDuBa7+GIjlnqRoQywg7PTYWXUEls5P/12TC7znhwmjk++9KWOwIDAQAB"
set theData to "This is my auth password."
set salt to generateSalt(random number from 10 to 50)
set dataToEnc to salt & "-" & theData
--set encrypt to do shell script ("openssl rsautl -encrypt -inkey public_key -pubin -in \"" & dataToEnc & "\" -out encrypt.dat")
--log encrypt
on generateSalt(numChars)
do shell script "generateSalt() {
[[ -c /dev/urandom ]] || { echo 'ERROR: Random source /dev/urandom not available.' >&2; return 1; }
LC_ALL=C tr -cd '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz' < /dev/urandom | head -c $1
}
generateSalt " & numChars
end generateSalt
Generar la sal y concatenar la cadena es simple, pero aquí es donde estoy atascado:
- ¿Cómo implemento el script de cifrado correcto con la clave codificada en la parte superior, INSTEAD OF que hace referencia al archivo .pem que se generó a través de la creación de RSA gen?
- ¿Cómo almaceno el resultado cifrado en una variable EN LUGAR DE un archivo?
Sé que hay variaciones de mis preguntas que ya han sido contestadas, pero después de horas de investigación todavía no estoy más cerca y tengo la esperanza de que alguien pueda ayudar. Por favor, hágame saber si algo requiere una aclaración.