AYUDA EN LÍNEA
 WINDEVWEBDEV Y WINDEV MOBILE

Ayuda / WLanguage / Funciones WLanguage / Funciones estándar / Funciones de cifrado/compresión
WINDEV
WindowsLinuxUniversal Windows 10 AppJavaReportes y ConsultasCódigo de Usuario (UMC)
WEBDEV
WindowsLinuxPHPWEBDEV - Código Navegador
WINDEV Mobile
AndroidWidget Android iPhone/iPadIOS WidgetApple WatchMac CatalystUniversal Windows 10 App
Otros
Procedimientos almacenados
Cifra un buffer utilizando un algoritmo de cifrado asimétrico (RSA) que requiere una clave pública y una clave privada.
El mensaje puede ser descifrado:
  • con la función DecryptAsymmetric.
  • con un software de terceros (usando las mismas opciones de relleno).
Ejemplo
// Encrypting a character string
// ---------------------------------------
bufToEncrypt is Buffer = "Message to encrypt"
bufEncryptedMessage is Buffer
sPublicKeyFile is string = fExeDir() + "\PublicKey.pem"
sPublicKeyPassword is string = "xxx"
 
bufEncryptedMessage = EncryptAsymmetric(bufToEncrypt, sPublicKeyFile, ...
sPublicKeyPassword, cryptPaddingPKCS1)
 
// Decryption  
// -------------
bufEncryptedMessage is Buffer
bufDecryptedMessage is Buffer
sPrivateKeyFile is string = fExeDir() + "\PrivateKey.pem"
sPrivateKeyPassword is string = "xxx"
 
bufDecryptedMessage = DecryptAsymmetric(bufEncryptedMessage, sPrivateKeyFile, ...
sPrivateKeyPassword, cryptPaddingPKCS1)
bufToEncrypt is Buffer = StringToUTF8("สวัสดี Test")
bufPrivateKey is Buffer
bufPublicKey is Buffer
(bufPrivateKey, bufPublicKey) = EncryptGenerateRSAKey(1024)
// Encryption
bufEncrypted is Buffer = EncryptAsymmetric(bufToEncrypt, bufPublicKey)
bufSign is Buffer = CertificateSignString(bufEncrypted, bufPrivateKey, "", ...
certSignatureOnly + certSHA256)
// Decryption
IF CertificateCheckString(bufEncrypted, bufSign, bufPublicKey, "", "", ...
certSignatureOnly + certSHA256) THEN
bufReadable is Buffer = DecryptAsymmetric(bufEncrypted, bufPrivateKey)
Trace("Authentic message")
Trace(UTF8ToString(bufReadable))
ELSE
Trace("Unauthenticated message")
END
Sintaxis
<Result> = EncryptAsymmetric(<Content to encrypt> , <Public key file> [, <Password> [, <Padding>]])
<Result>: Cadena de caracteres o Buffer
Resultado del cifrado del mensaje especificado.
<Content to encrypt>: Buffer
Buffer a cifrar.
Atención: El tamaño del mensaje a cifrar debe ser inferior al tamaño de la clave menos el tamaño mínimo del relleno (11 bytes para PKCS1 y 41 para OAEP).
Por ejemplo, para una clave de 4096 bits y el relleno OAEP, el mensaje no puede superar los 471 bytes.
<Public key file>: Cadena de caracteres o Buffer
  • Nombre y ruta del archivo que corresponde a la clave pública que se utilizará para el cifrado. Los formatos de clave pem, der y p12 están soportados.
  • Buffer que contiene la clave pública que se utilizará para el cifrado.
<Password>: Cadena de caracteres opcional
Contraseña del archivo de claves (si es necesario).
<Padding>: Constante opcional de tipo Integer
Modo de relleno de los datos cifrados para que sean compatibles con el tamaño requerido por los algoritmos de cifrado por bloques:
cryptPaddingOAEPRelleno según el algoritmo OAEP (Optimal Asymmetric Encryption Padding).
cryptPaddingPKCS1
(Valor predeterminado)
Relleno según el algoritmo PKCS 1 (Public Key Cryptographic Standards).
Clasificación Lógica de negocio / UI: Lógica de negocio
Componente: wd290com.dll
Versión mínima requerida
  • Versión 24
Esta página también está disponible para…
Comentarios
Haga clic en [Agregar] para publicar un comentario

Última modificación: 23/06/2023

Señalar un error o enviar una sugerencia | Ayuda local