在FreeBasic中使用集合类(泛型)(第七节)——读取配置文件和一些加密算法的封装
已有 2584 次阅读2015-5-22 16:14
|个人分类:FreeBasic|
Freebasic
使用 mdMessageDigest ,你可以使用 MD5, SHA-1 and SHA-512 来获得任何字符串或整个文件的加密值:
#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" 使用方式类似
m.update(text)
result = m.digest()
If UCase(result) = UCase("a3cca2b2aa1e3b5b3b5aad99a8529074") Then
Print "Digest Test 1: 正确"
Else
Print "Digest Test 1: 错误"
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: 错误"
EndIf
Sleep
本代码必须在 FreeBASIC >= 0.91才能编译通过,因为 FreeBASIC之前的版本中 Hex()函数有bug.
注:因为Freebasic的官方库中,有许许多多的各种加解密算法的库,而且性能和c是相差无几,所以应该
更多是使用官方的库。
读取配置文件:
mdResourceBundle类是读取配置文件类, 您可以将它用于多种用途。比如加载配置文件或多国语言文件。
Dim As mdResourceBundle bundle = mdResourceBundle.getBundle("Important", "optional")
上一行代码将创建一个 bundle 对象,并读取文件名是"Important_optional.properties"的文件. 如果 "optional"是空的,它将读取文件名是 "Important.properties"的文件. 这个文件名也可以是包含路径的文件名.
可能会常用于下面的形式:
- mdResourceBundle.getBundle("Language", "zh") - 来读取 Language_zh.properties
- mdResourceBundle.getBundle("settings") - 读取 settings.properties
配置文件内容的格式 是"key=value"这样的. "key" 可以是任何字符, 但key中不能包含 "="。 "value" 是直到行末的任何字符串。 Value也可以包含参数如 "{0}" ,这样的占位符在运行时会被设置好的参数替换掉。
Print bundle.containsKey("key") 'TRUE or FALSE
Print bundle.getString("key") '将显示key对应的value
Print bundle.getString("key", "parameter") ' "parameter" 将 替换掉"{0}"
Print bundle.getString("key", array())
Print bundle.getString("key", "p0 p1 p2") '