在FreeBasic中使用集合類(lèi)(泛型)(第七節(jié))——讀取配置文件和一些加密算法的封裝
已有 2689 次閱讀2015-5-22 16:14
|個(gè)人分類(lèi):FreeBasic|
Freebasic
使用 mdMessageDigest ,你可以使用 MD5, SHA-1 and SHA-512 來(lái)獲得任何字符串或整個(gè)文件的加密值:
#Include Once "md/security/mdMessageDigest.bi"
Dim As String result
Dim As String text = "Franz jagt im komplett verwahrlosten Taxi quer durch Bayern"
Dim As mdMessageDigest m = mdMessageDigest.getInstance("MD5") '"SHA-1" and "SHA-512" 使用方式類(lèi)似
m.update(text)
result = m.digest()
If UCase(result) = UCase("a3cca2b2aa1e3b5b3b5aad99a8529074") Then
Print "Digest Test 1: 正確"
Else
Print "Digest Test 1: 錯(cuò)誤"
EndIf
'or
Dim As mdMessageDigest m1 = mdMessageDigest.getInstance("MD5")
result = m1.createHash(text)
If UCase(result) = UCase("a3cca2b2aa1e3b5b3b5aad99a8529074") Then
Print "Result Test 1: 正確"
Else
Print "Result Test 1: 錯(cuò)誤"
EndIf
Sleep
本代碼必須在 FreeBASIC >= 0.91才能編譯通過(guò),因?yàn)?FreeBASIC之前的版本中 Hex()函數(shù)有bug.
注:因?yàn)镕reebasic的官方庫(kù)中,有許許多多的各種加解密算法的庫(kù),而且性能和c是相差無(wú)幾,所以應(yīng)該
更多是使用官方的庫(kù)。
讀取配置文件:
mdResourceBundle類(lèi)是讀取配置文件類(lèi), 您可以將它用于多種用途。比如加載配置文件或多國(guó)語(yǔ)言文件。
Dim As mdResourceBundle bundle = mdResourceBundle.getBundle("Important", "optional")
上一行代碼將創(chuàng)建一個(gè) bundle 對(duì)象,并讀取文件名是"Important_optional.properties"的文件. 如果 "optional"是空的,它將讀取文件名是 "Important.properties"的文件. 這個(gè)文件名也可以是包含路徑的文件名.
可能會(huì)常用于下面的形式:
- mdResourceBundle.getBundle("Language", "zh") - 來(lái)讀取 Language_zh.properties
- mdResourceBundle.getBundle("settings") - 讀取 settings.properties
配置文件內(nèi)容的格式 是"key=value"這樣的. "key" 可以是任何字符, 但key中不能包含 "="。 "value" 是直到行末的任何字符串。 Value也可以包含參數(shù)如 "{0}" ,這樣的占位符在運(yùn)行時(shí)會(huì)被設(shè)置好的參數(shù)替換掉。
Print bundle.containsKey("key") 'TRUE or FALSE
Print bundle.getString("key") '將顯示key對(duì)應(yīng)的value
Print bundle.getString("key", "parameter") ' "parameter" 將 替換掉"{0}"
Print bundle.getString("key", array())
Print bundle.getString("key", "p0 p1 p2") '