欧美一区二区三区,国内熟女精品熟女A片视频小说,日本av网,小鲜肉男男GAY做受XXX网站

mysql函數實現非對稱加解密

呂致盈2年前8瀏覽0評論

MySQL函數提供了非對稱加解密服務的實現,非對稱加密是指加密和解密使用的不是同樣的秘鑰,一般公鑰用于加密,私鑰用于解密。MySQL函數實現非對稱加解密需要用到RSA算法,該算法是公鑰加密算法中的一種,其秘鑰長度可以自行指定,一般地,秘鑰越長加密時耗費時間越長,但也越難破解。

-- 創建公私鑰對
openssl genrsa -out private_key.pem 2048
openssl rsa -in private_key.pem -pubout -out public_key.pem 
-- 將私鑰讀入MySQL
SET @pri_key:= load_file('/path/to/private_key.pem');
-- 將公鑰讀入MySQL
SET @pub_key:= load_file('/path/to/public_key.pem');
-- 加密
CREATE FUNCTION `rsa_encrypt`(IN `plain_text` MEDIUMTEXT) 
RETURNS TEXT CHARSET utf8 COLLATE utf8_unicode_ci DETERMINISTIC
BEGIN
DECLARE `encrypted_text` TEXT CHARSET utf8 COLLATE utf8_unicode_ci;
SET `encrypted_text`:=  TO_BASE64(RSA_ENCRYPT(`plain_text`, @pub_key));
RETURN `encrypted_text`;
END;
-- 解密
CREATE FUNCTION `rsa_decrypt`(IN `encrypted_text` MEDIUMTEXT) 
RETURNS TEXT CHARSET utf8 COLLATE utf8_unicode_ci DETERMINISTIC
BEGIN
DECLARE `plain_text` TEXT CHARSET utf8 COLLATE utf8_unicode_ci;
SET `plain_text`:= CAST(RSA_DECRYPT(FROM_BASE64(`encrypted_text`), @pri_key) AS CHAR);
RETURN `plain_text`;
END;