注册 登录
Office中国论坛/Access中国论坛 返回首页

ganlinlao的个人空间 http://www.office-cn.net/?230471 [收藏] [复制] [分享] [RSS]

日志

在FreeBasic中使用集合类(泛型)(第七节)——读取配置文件和一些加密算法的封装

已有 2596 次阅读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") '

评论 (0 个评论)

facelist doodle 涂鸦板

您需要登录后才可以评论 登录 | 注册

QQ|站长邮箱|小黑屋|手机版|Office中国/Access中国 ( 粤ICP备10043721号-1 )  

GMT+8, 2024-11-25 07:22 , Processed in 0.090885 second(s), 17 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

返回顶部