首頁 資料庫 mysql教程 在MySQL中根据规则生成随机密码_MySQL

在MySQL中根据规则生成随机密码_MySQL

Jun 01, 2016 pm 01:41 PM
儲存 安全性

bitsCN.com
在MySQL中根据规则生成随机密码 MySQL 5.0 以后的版本开始支持存储过程,存储过程具有壹致性、高效性和安全性。MySQL 5.0 之前的版本并不支持存储过程,然而随着 MySQL 技术的日趋完善,存储过程将在以后的项目中得到 广泛的应用。 在我的应用中,我需要在用户首次注册时为该帐号生成一个随机密码。所生成的密码必须满足一定的要求,这些要求由系统管理员进行配置。 我们提供了下面几个对密码的要求规则,这些规则可组合使用: 1- 要求大写字母 UPPERCASE                =====> 缩写 [U] 2- 要求小写字母 LOWERCASE               =====> 缩写 [L] 3- 要求使用数字 NUMBER                      =====> 缩写 [N] 4- 可以是任意字符 ANY_CHARACTER   ======> 缩写 [A] 5- 必须有非字母和数字的字符 NON_ALPHANUMERIC_CHARACTER =====> 缩写 [S] 因此我想通过创建一个动态函数 "RANDOM_PASSWORD" 来根据要求返回随机的密码。   系统管理员只需要传递所需密码的规则就会返回对应的随机密码。 例如要求如下: 首字符必须大写             ======> U 第二个字符必须小写       ======> L 第三个字符必须是数字    ======>N 第四个字符随意             ======>A 第五个字符必须是非字母和数字  ======>S 第六个字符必须是数字    ======> N     那么你可以使用 "ULNASN" 参数来获取随机密码。 所生成的密码程度跟传递的参数长度是一致的。在我们这个例子中生成的密码长度是 6。你可以使用下面的方法来调用这个函数: 1RANDOM_PASSWORD('ULNASN')在MySQL的控制台编写函数定义前,先要将数据库中可能已经存在的此函数定义删除,然后须将分隔符更改为$,其实我本想将分隔符改成#,后来发现没有成功,不知道是为什么,在命令行下删除 RANDOM_PASSWORD() 函数的定义与更改分隔符使用如下命令:   1mysql> DROP FUNCTION IF EXISTS RANDOM_PASSWORD;2mysql> delimiter $接下来可以编写该函数,经过我调试通过的源代码如下:  01CREATE FUNCTION RANDOM_PASSWORD (str VARCHAR(255))02RETURNS VARCHAR(255)03BEGIN04    DECLARE UPPER_CASE VARCHAR(26) DEFAULT 'ABCDEFGHIJKLMNOPQRSTUVWXYZ';05    DECLARE LOWER_CASE VARCHAR(26) DEFAULT 'abcdefghijklmnopqrstuvwxyz';06    DECLARE NUMBERS VARCHAR(10) DEFAULT '0123456789';07    DECLARE TEMP_CHARACTER VARCHAR(255) DEFAULT '';08    DECLARE NON_ALPHANUMERIC_CHARACTERS VARCHAR(255) DEFAULT '~!@#$%^&*()_+-=`:;,.?/';09        DECLARE ALL_STRING VARCHAR(255) DEFAULT 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789~!@#$%^&*()_+-=`:;,.?/';10    DECLARE STR_LENGTH INT DEFAULT 0;11    DECLARE i INT DEFAULT 0;12    DECLARE RANDOM_CHARACTER CHAR(1) DEFAULT ' ';13    DECLARE PASSWORD_RETURNED VARCHAR(255) DEFAULT '';14     15    SET STR_LENGTH = CHAR_LENGTH(str);16     17    WHILE i select RANDOM_PASSWORD('ULNASN') PASSWORD;2    +----------+3| PASSWORD |4+----------+5| Bv1n`8   |6+----------+71 row in set (0.00 sec)在我这里将返回的随机密码是:Bv1n`8 当然,你运行的结果可能不一样,因为这是随机的。  作者 Bairrfhoinn bitsCN.com

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

PHP5和PHP8的性能和安全性:對比和改進 PHP5和PHP8的性能和安全性:對比和改進 Jan 26, 2024 am 10:19 AM

PHP是一種廣泛應用的伺服器端腳本語言,用於開發網頁應用程式。它已經發展了多個版本,而本文將主要討論PHP5和PHP8之間的比較,特別關注其在性能和安全性方面的改進。首先讓我們來看看PHP5的一些特點。 PHP5是在2004年發布的,它引入了許多新的功能和特性,如物件導向程式設計(OOP)、異常處理、命名空間等。這些特性讓PHP5變得更強大、更靈活,使得開發者能

華為明年將推創新 MED 儲存產品:機架容量超過 10 PB,功耗低於 2 kW 華為明年將推創新 MED 儲存產品:機架容量超過 10 PB,功耗低於 2 kW Mar 07, 2024 pm 10:43 PM

本站3月7日訊息,華為資料儲存產品線總裁週躍峰博士日前出席MWC2024大會,專門展示了為溫資料(WarmData)和冷資料(ColdData)設計的新一代OceanStorArctic磁電儲存解決方案。華為資料儲存產品線總裁週躍峰發布系列創新解決方案圖來源:華為本站附上華為官方新聞稿內容如下:該方案的成本比磁帶低20%,功耗比硬碟低90%。根據國外科技媒體blocksandfiles報道,華為發言人也透露了關於該磁電儲存解決方案的資訊:華為的磁電磁碟(MED)是對磁性儲存媒體的重大創新。第一代ME

Golang開發的安全性挑戰:如何避免被利用用於病毒製作? Golang開發的安全性挑戰:如何避免被利用用於病毒製作? Mar 19, 2024 pm 12:39 PM

Golang開發的安全性挑戰:如何避免被利用用於病毒製作?隨著Golang在程式設計領域的廣泛應用,越來越多的開發者選擇使用Golang來開發各種類型的應用程式。然而,與其他程式語言一樣,Golang開發中也存在著安全性挑戰。特別是,Golang的強大功能和靈活性也使其成為潛在的病毒製作工具。本文將深入探討Golang開發中的安全性問題,並提供一些方法來避免G

Java 函數中記憶體管理技術與安全性的關係是什麼? Java 函數中記憶體管理技術與安全性的關係是什麼? May 02, 2024 pm 01:06 PM

Java中的記憶體管理涉及自動記憶體管理,使用垃圾回收和引用計數來分配、使用和回收記憶體。有效的記憶體管理對於安全性至關重要,因為它可以防止緩衝區溢位、野指標和記憶體洩漏,從而提高程式的安全性。例如,透過正確釋放不再需要的對象,可以避免記憶體洩漏,從而提高程式效能並防止崩潰。

Ubuntu上的Git安裝流程 Ubuntu上的Git安裝流程 Mar 20, 2024 pm 04:51 PM

Git是一個快速、可靠、適應性強的分散式版本控制系統。它旨在支援分散式的非線性工作流程,使其成為各種規模的軟體開發團隊的理想選擇。每個Git工作目錄都是一個獨立的儲存庫,具有所有更改的完整歷史記錄,並且能夠追蹤版本,即使沒有網路存取或中央伺服器。 GitHub是託管在雲端的Git儲存庫,它提供了分散式修訂控制的所有功能。 GitHub是Git的儲存庫,託管在雲端。與作為CLI工具的Git不同,GitHub有一個基於Web的圖形使用者介面。它用於版本控制,這涉及與其他開發人員協作,並追蹤隨時間推移對腳本和

win11是否需要安裝防毒軟體? win11是否需要安裝防毒軟體? Dec 27, 2023 am 09:42 AM

win11是自備防毒軟體的,一般來說殺毒的效果也都是很好的不需要裝,不過唯一的缺點就是看到病毒是先卸載了而不是提前提醒你是否需要,要是接受的話可以不用下載其他防毒軟體。 win11需要裝防毒軟體嗎:答:不需要一般來說win11是自備防毒軟體的,不需要我們額外的安裝。如果你不喜歡win11系統自帶防毒軟體的處理方式的話是可以重新安裝的。如何關閉win11自帶的防毒軟體:1、首先我們進入設定點擊「隱私和安全性」。 2、接著點選「window安全中心」。 3、然後選擇「病毒和威脅防護」。 4.最後就可以將其關

正確利用sessionStorage保護敏感資料的方法 正確利用sessionStorage保護敏感資料的方法 Jan 13, 2024 am 11:54 AM

如何正確使用sessionStorage儲存敏感訊息,需要具體程式碼範例無論是在Web開發或行動應用程式開發中,我們常常需要儲存和處理敏感訊息,如使用者登入憑證、身分證號碼等。在前端開發中,使用sessionStorage是常見的儲存方案。然而,由於sessionStorage是基於瀏覽器的存儲,需要注意一些安全性的問題,以確保存儲的敏感資訊不會被惡意存取和利用

Oracle預設帳號密碼的安全性分析 Oracle預設帳號密碼的安全性分析 Mar 09, 2024 pm 04:24 PM

Oracle資料庫是一款受歡迎的關聯式資料庫管理系統,許多企業和組織都選擇使用Oracle來儲存和管理其重要資料。在Oracle資料庫中,有一些預設帳號和密碼是系統預設的,例如sys、system等。在日常的資料庫管理和維運工作中,管理員需要重視這些預設帳號密碼的安全性,因為這些帳號具有較高的權限,一旦被惡意利用,可能導致嚴重的安全性問題。本文將對Oracle默

See all articles