以文本方式查看主题 - 中文XML论坛 - 专业的XML技术讨论区 (http://bbs.xml.org.cn/index.asp) -- 『 XML安全 』 (http://bbs.xml.org.cn/list.asp?boardid=27) ---- [转载]XML 加密和 XML 签名简介 (http://bbs.xml.org.cn/dispbbs.asp?boardid=27&rootid=&id=6886) |
-- 作者:admin -- 发布时间:4/20/2004 2:07:00 PM -- [转载]XML 加密和 XML 签名简介 发信人: boris963 (txj), 信区: XML [size=4]标 题: [转载]XML 加密和 XML 签名简介[/size] 发信站: BBS 水木清华站 (Sat Mar 6 15:47:24 2004), 转信 简介 安全性领域是另一个快速增长的领域。在不同团体之间建立信任的传统方法在公共因特网上已不合适,实际上,在大型 LAN 和 WAN 上也不合适。在这些情况下,基于非对称密码术的信任机制可能会非常有用,但实际上,部署和密钥管理的方便性、互操作性的范围和提供的安全性远不如各种的“公钥基础设施”(Public Key Infrastructures (PKI))的热情的供应商曾让我们相信的那样。处理层次数据结构,以及带有机密、访问权限或完整性等不同需求的数据的子集特别困难。另外,具有不同于 XML 文档的现今标准安全性控制的应用程序一点都不简单。 目前,一些团体正积极投身于检查这些问题和开发标准的活动中。其中主要的相关开发是 XML 加密和相关的 XML 签名、“可扩展访问控制语言(XACL)”和相关的“安全性断言标记语言(SAML — 以前是互为竞争对手的 AuthML 和 S2ML 的结合)”。所有这些都由 OASIS 和“XML 密钥管理规范(XKMS)”驱动。本文将 介绍 XML 加密和 XML 签名。 “XML 安全性套件” developerWorks 有一篇 Doug Tidwell 著的文章详细讲述了该套件,可在 alphaWorks 站点获得该套件的最新版本。(请参阅参考资料。) 密码术现在所做的远远不止隐藏信息。消息摘要确定文本完整性,数字签名支持发送方认证,相关的机制用于确保任何一方日后无法拒绝有效事务。这些都是远程交易必不可少的元素,现在,用于处理整个文档的机制开发得相当好。 有了一般的加密,对 XML 文档整体进行数字化签名不是问题。然而,当需要对文档的不同部分(可能由不同的人)签名,以及需要与选择性的方法一起来这样做时,就会出现困难。也许不可能或者不值得强制不同部分的加密工作由特定人员按特定顺序进行,然而成功地处理文档的不同部分将取决于是否知道这点。此外,由于数字签名断言已经使用了特定专用密钥来认证,所以要小心签名人是以纯文本形式查看文档项的,这可能意味着对由于其它原因而加密的部分内容进行了解密。在另一种情况下,作为更大集合中的一部分,可能对已经加密过的数据进行进一步加密。在牵涉单一 XML 文档(可能由一些不同的应用程序和不同的用户处理在工作流序列中使用的 Web 表单或一系列数据)的事务集中考虑的不同可能性越多,就越可能看到巨大的潜在复杂性。 还有其它问题。XML 语言的强项之一是,搜索是明确的,无二义性的:DTD 或 Schema 提供了相关语法的信息。如果将包括标记在内的文档的一部分作为整体加密,就会丧失搜索与那些标记相关的数据的能力。此外,如果标记本身被加密,那么一旦泄漏,它们将被利用对采用的密码术进行纯文本攻击。 这些是工作组正在考虑的一些方面。 XML 加密示例 加密工作草案给出了一些示例来演示:加密的颗粒度如何根据要求的不同而不同,以及可能出现什么结果。清单 1 中的代码片断显示了带有信用卡和其它个人信息的未加密 XML 文档。在某些情况下(例如,隐藏支付机制的信息),可能希望加密除客户名称以外的所有信息,清单 2 的代码片断演示了如何这样做。 清单 1. 显示 John Smith 的银行帐户、5000 美元限额、卡号和有效期的的信息 <?xml version='1.0'?> 清单 2. 除名称之外全部被加密的加密文档 <?xml version='1.0'?> 但是,在其它情况下,可能只需要隐藏一些敏感内容 — 可能来自商家或其它第三方 — 清单 3 演示了这点。(请注意,显示了与加密内容相关的标记名。) 清单 3. 只隐藏了信用卡号的加密文档 <?xml version='1.0'?> 可能还有必要加密文档中的所有信息,清单 4 演示了这点。 清单 4. 隐藏了全部内容的加密文档 <?xml version='1.0'?> CipherData 可以封装,也可以引用原始加密数据。在第一种情况下,CipherValue 元素的内容显示原始数据,而在第二种情况,使用 CipherReference 元素,这包括了一个指向加密数据位置的 URI。 规范的 XML 对于加密、特别是数字签名来说,这尤为重要,因为很明显,逻辑上相同的文本变体不应该表示文档的完整性及其发送方的认证是可疑的。用不同工具(譬如,解析器)生成不同文本(并因而生成不同消息摘要)进行处理时也可能发生这样的事。因此,在生成签名和验证计算期间,应该在范式上进行消息摘要。如果摘要匹配,这将确定:即使文本形式可能不同,它们在其上计算的范式也匹配。 XML 签名示例 清单 5. 一个简单分离签名的示例 [s01] <Signature Id="MyFirstSignature" 实际签名的信息是位于 s02 行和 s12 行之间,即 SignedInfo 元素。在签名的部分中包含用于计算 SignatureValue 元素的算法的引用,而那个元素本身位于签名部分之外(在 s13 行上)。s04 行上的 SignatureMethod 引用的是将规范的 SignedInfo 转换成 SignatureValue 所用的算法。它是密钥相关的算法和摘要算法(在这里是 DSA 和 SHA-1)的组合,可能还具有象填充这样的操作。KeyInfo 元素(在这里位于 s14 行和 s16 行之间 — 该元素是可选的)指出用来验证签名的密钥。 转换 下面这个示例摘自那个文档,它演示了如何建议文档接收方采用正确的解密和签名验证顺序。第一个代码段显示了要签名的文档部分 — order 元素;其中,第 7 行到第 11 行的 cardinfo 元素是关于个人和财务方面的详细信息,它是纯文本,但也存在一些加密数据(第 12 行)。 清单 6. XML 文档中的 order 元素 [01] <order Id="order"> 清单 7. 经过签名和进一步加密、且现在显示转换信息的 order 文档 [01] <Signature xmlns="http://www.w3.org/2000/09/xmldsig#"> 第 1 行到 第 26 行的 Signature 元素现在包含前面的 order 元素(位于第 16 行到第 24 行),和以前的加密纯文本 cardinfo(显示在第 22 行这一行中)。有两个转换引用:解密(第 6 行到第 8 行)和规范化(第 9 行)。解密转换指示签名验证器解密除 DataRef 元素中第 7 行指定的数据之外的所有加密数据。解密了第 22 行中的 EncryptedData 元素之后,规范化 order 元素并且恰当地验证签名。 其它相关语言和规范 SAML 是一个由 OASIS 驱动的模型,它尝试融合相互竞争的 AuthML 和 S2ML 规范,使认证和授权信息的互换便于进行。“可扩展访问控制标记语言”是与 SAML 紧密相关的,但它更着重于特定 XML 文档的上下文中的面向主题特权对象的安全性模型,它也由 OASIS 指导,又是被称为 XACML 或 XACL(即使在同一些文档中)。通过用 XACL 编写规则,策略制订者可以定义,对于特定 XML 文档和前面所述的情况中的相关事情,由谁来实施哪些访问特权。 W3C 委员会现在正在考虑 XKMS,它打算建立一个位于 XML 签名标准顶部的密钥管理协议。有了 SAML、XACL 和其它倡议,XKMS 是构成应用于 XML 文档的安全性这个大框架中的重要元素。有了它,可以立杆见影地极大简化认证和签名密钥的管理;它通过将数字证书处理功能、撤回状态检查和认证路径位置和验证从所涉及的应用程序分离来做到这点 — 例如,通过把密钥管理委托给因特网 Web 服务。 在满足使用的便利性、可靠性和强健性方面,XML 安全性还有很多路要走。但是目前,正在取得良好的进展。 -- |
-- 作者:Spark -- 发布时间:4/26/2004 10:22:00 PM -- thanks |
-- 作者:莫往 -- 发布时间:7/20/2004 7:10:00 PM -- 哪有这方面的资料,请给几个网址, |
-- 作者:Liz -- 发布时间:8/19/2004 2:10:00 PM -- http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnwebsrv/html/underxmldigsig.asp |
-- 作者:cooldragon -- 发布时间:8/24/2004 4:10:00 PM -- 对我这种还没入门的菜鸟来说,太深澳了! 不过,我有自信以后能看的懂的! 支持! |
-- 作者:cooldragon -- 发布时间:9/1/2004 5:15:00 PM -- 诚心请教高手-admin,请问“XML安全性套件”的具体名称是什么? 期盼回复! 无限感激! |
-- 作者:萧霄 -- 发布时间:10/15/2004 9:39:00 PM -- 很有兴趣 但是看不懂 |
-- 作者:kofuya -- 发布时间:3/20/2005 11:09:00 AM -- 说明的很详细 问一下现在有哪些工具支持这些技术呢 |
-- 作者:L@MPO-XML -- 发布时间:3/22/2005 8:49:00 PM -- goooooooooooooooood share |
-- 作者:L@MPO-XML -- 发布时间:3/22/2005 8:50:00 PM -- goooooooooooooooood share |
-- 作者:Reta -- 发布时间:4/9/2005 5:27:00 PM -- [求助] 我现在想写一个论文 是关于基于XML的数字签名算法分析的 范围太大 不知道重点应放在哪里 这方面资料你都多去哪里查找呢? |
-- 作者:denglin -- 发布时间:4/20/2005 5:20:00 PM -- 顶啊! |
-- 作者:yangyongn -- 发布时间:5/5/2005 1:42:00 PM -- aVFP的数据库加密算法 转载自《VFP网络工作室》 (文/曲景东) 一、 前 言 固 定 密 码, 就 是 系 统 只 有 一 个 密 码, 而 且 是 固 定 的, 不 可 变 的。 常 见 于 用Dbase、FOXBASE、FOXBASE +、FOXPRO2.X 开 发 的 数 据 库 管 理 系 统。 常 用 如 下 语 句: I=1 从 以 上 语 句 不 难 看 出, 其 核 心 是: 变 量PWD 与 输 入 值 的 比 较。 密 码“1234” 是 程 序 设 计 时 设 定 的, 以 后 应 用 时 是 无 法 修 改 的, 如 果 修 改, 就 要 改 变 源 程 序。 当 然, 也 可 以 编 写 一 段 子 程 序 用 来 修 改 密 码, 修 改 前, 其 判 断 旧 密 码 是 否 正 确, 也 用 IF TRIM(PWD)< >"123456" 语 句。 其 灵 活 性 很 差, 在pctool 等 工 具 出 现 后, 保 密 性 就 显 得 差 了。 2、 简 单 加 密 的 固 定 密 码 简 单 加 密 的 固 定 密 码, 是 指 把 密 码 进 行 简 单 的 加 密, 但 密 码 仍 然 是 固 定 的, 不 变 的。 简 单 加 密 一 般 有 两 种:“ 钥 匙 盘” 法 和“ 变 换 法”。“ 钥 匙 盘” 法, 就 是 把 密 码 存 放 在 一 张 软 盘 上, 使 用 时, 把“ 钥 匙 盘” 插 入 计 算 机, 系 统 程 序 读 取 软 盘 中 的 密 码。 或 把 密 码 和 操 作 员 姓 名 存 到 数 据 库 中, 此 数 据 库 存 放 于 软 盘 内, 使 用 时 把“ 钥 匙 盘” 插 入 计 算 机, 系 统 读 取 软 盘 中 的 密 码 和 操 作 员 姓 名, 下 面 是 此 法 的 主 要 语 句: USE A:KLK && 到KLK 数 据 库 内 查 找 输 入 的 操 作 员 的 姓 名; I=1 这 种 加 密 方 法 保 密 性 要 好 一 些, 但 每 次 使 用 都 要 用“ 钥 匙 盘” 进 入 系 统, 很 繁 琐。 变 换 法, 就 是 通 过 对 密 码 的 运 算, 使 密 码 发 生 变 化 的 方 法, 一 般 采 用 换 算 法, 常 用 的 加 密 语 句 如 下: PSD =CHR(65)+CHR(66)+CHR(67)+"9" 函 数CHR(), 是 用 来 换 算ASCII 码 的, 换 算 后 的PSD 是ABC9。 用 这 种 简 单 的 换 算, 可 以 避 免 密 码 被 直 接 发 现, 如 果 和 上 述 方 法 混 合 应 用, 保 密 性 就 加 强 了。 3、 简 单 加 密 变 化 的 密 码 以 上 密 码 都 是 固 定 的, 下 面 介 绍 一 种 经 简 单 加 密 变 换 的 密 码。 这 是 利 用 时 间 函 数 来 加 密 的 算 法, 密 码 每 天 都 不 同。 密 码 由 变 化 的 时 间 和 固 定 字 符 构 成。 其 核 心 语 句 为: kl=DATE() PWD= SUBSTR(CDOW(kl),1,3)+"1234" CDOW() 函 数, 输 入 年 月 日, 返 回 星 期 几( 字 符 型)。 操 作 者 根 据 今 天 是 星 期 几, 将 星 期 的 前3 个 英 文 字 母 和 固 定 的“1234” 输 入, 与 变 量PWD 比 较。 程 序 会 把 今 天 的 日 期 换 算 成 星 期 数, 然 后 取 前3 位, 并 加 上“1234”, 合 成 今 天 的 密 码 变 量PWD。 这 样 就 实 现 了 每 天 有 不 同 的 密 码。 保 密 性 加 强 了。 以 上 几 种 加 密 方 法 都 是 传 统 的 简 单 的 加 密 方 法, 其 特 点 是 简 单、 保 密 性 差, 密 码 单 一, 保 护 能 力 较 低, 主 要 用 于Dbase、FOXBASE、FOXBASE +、FOXPRO2.x 中, 由 于 上 述 软 件 的 编 译 不 是 真 正 的 编 译, 其 密 码 容 易 被 发 现。 三、 一 种 新 型 密 码 加 密 方 法 下 面 具 体 介 绍 一 种 基 于VFP5.0 的 密 码 设 定 方 法。 其 特 点 是: 具 有 使 用 登 记 功 能; 每 人 一 个 密 码, 并 可 随 时 更 换; 密 码 经 加 密 运 算, 不 易 被 破 解。 基 本 思 路 如 下: 首 先 建 立 两 个 数 据 库(table), 一 个 用 来 存 放 口 令 及 对 应 的 用 户( 称 为“ 口 令 库”), 另 一 个 存 放 用 户 登 录 使 用 情 况( 称 为“ 登 录 库”)。 在 再 建 立 两 个 窗 口(form), 一 个 用 来 检 查 口 令, 另 一 个 用 来 修 改 口 令。 接 下 来 定 义 两 个 过 程(procedure), 一 个 用 来 给 口 令 加 密(“ 加 密 过 程”), 另 一 个 用 给 口 令 解 密(“ 解 密 过 程”)。 这 个“ 加 密 过 程”, 是 把 密 码 经 加 密 运 算 后 存 入 口 令 库, 而“ 解 密 过 程” 实 际 上 是 把 输 入 的 密 码 经 加 密 运 算 后 与 口 令 库 内 的 密 码 进 行 比 较, 并 不 是 解 密。 为 了 使 密 码 输 入 时 不 被 人 看 见, 要 对 密 码 输 入 的 文 字 框 的 属 性 作 如 下 工 作: 进 入DATA 属 性 栏, 把InputMask 属 性 改 为:XXXXXX, 进 入LAYOUT 属 性 栏, 把PassWordChar 的 属 性 改 为:“*”, 这 样, 输 入 的 密 码 就 不 会 被 别 人 发 现。( 在FOXBASE FOXBASE +,FOXPRO2.X 中, 常 用 设 置 背 景 颜 色 与 输 入 密 码 字 符 颜 色 相 同 的 办 法 来 防 止 别 人 看 见。) “ 解 密 过 程” 代 码 如 下: parameter password BITXOR() 函 数 是vfp 特 有 的 函 数, 它 将 函 数 的 两 个 参 数 转 换 成 二 进 制 数, 并 且 执 行“ 与” 操 作, 返 回 一 个 十 进 制 的 结 果。 用 它 来 进 行 加 密 运 算, 保 密 性 强。 加 上 密 码 键 值n( 取 姓 名 的 第 一 个 拼 音 字 母, 经 求 和, 再 取 平 均 值, 再 取 整 运 算, 换 算 成ASCII 码), 得 到 每 人 一 个 的 密 码。 该“ 过 程” 的 定 义 方 法 如 下: 在 定 义 检 查 密 码 的 窗 口(form) 的 编 辑 状 态 下, 用 鼠 标 点 菜 单form, 选“new method”, 键 入“ 过 程” 名。 然 后 双 击 正 在 编 辑 的 窗 口(form), 然 后 进 入" 过 程" 的 编 辑 状 态, 写 入 如 上 代 码。 加 密 过 程 是 解 密 过 程 的 逆 运 算, 代 码 如 下: parameter password 检 查 密 码 的 思 路 是: 先 到 输 入 姓 名 的 文 字 框 内 取 姓 名, 再 到 口 令 库 内 查 找 姓 名, 如 果 找 不 到 姓 名, 返 回 消 息 窗 口“ 您 不 是 指 定 用 户, 请 与 系 统 管 理 员 联 系 !”, 系 统 退 出; 如 果 找 到 了 用 户 姓 名, 则 继 续 进 行, 把 输 入 的 口 令 和 姓 名 送 到 解 密“ 过 程” 中 进 行 运 算, 解 密“ 过 程” 将 其 解 密, 并 与 口 令 库 内 的 数 据 进 行 比 较, 如 果 不 正 确, 开 始 计 数, 要 求 重 新 输 入 密 码, 三 次 不 正 确, 退 出 系 统。 如 果 正 确, 释 放 当 前 窗 口, 进 入 系 统。 主 要 代 码 如 下: name=trim(ThisForm.Text1.value) 主 要 代 码 如 下: name=ThisForm.Text3.value 注 意, 在 改 变 密 码 的 窗 口(form) 中, 要 定 义“ 加 密 过 程” 和“ 解 密 过 程”, 方 法 如 上 所 述。 以 上 是 一 个 加 密 算 法 的 主 要 思 路 和 关 键 代 码, 其 它 部 分 读 者 可 自 行 设 计。 这 个 加 密 算 法 还 可 以 进 一 步 完 善。 如 采 用 不 同 的 函 数 进 行 运 算, 加 入 日 期, 使 每 个 人 每 天 的 密 码 都 不 一 样( 加 入 时 间 的 算 法 如 前 所 述, 利 用CDOW() 函 数 作 为 键 值 的 一 部 分。)。 |
-- 作者:yangyongn -- 发布时间:5/5/2005 1:43:00 PM -- aVFP的数据库加密算法 转载自《VFP网络工作室》 (文/曲景东) 一、 前 言 固 定 密 码, 就 是 系 统 只 有 一 个 密 码, 而 且 是 固 定 的, 不 可 变 的。 常 见 于 用Dbase、FOXBASE、FOXBASE +、FOXPRO2.X 开 发 的 数 据 库 管 理 系 统。 常 用 如 下 语 句: I=1 从 以 上 语 句 不 难 看 出, 其 核 心 是: 变 量PWD 与 输 入 值 的 比 较。 密 码“1234” 是 程 序 设 计 时 设 定 的, 以 后 应 用 时 是 无 法 修 改 的, 如 果 修 改, 就 要 改 变 源 程 序。 当 然, 也 可 以 编 写 一 段 子 程 序 用 来 修 改 密 码, 修 改 前, 其 判 断 旧 密 码 是 否 正 确, 也 用 IF TRIM(PWD)< >"123456" 语 句。 其 灵 活 性 很 差, 在pctool 等 工 具 出 现 后, 保 密 性 就 显 得 差 了。 2、 简 单 加 密 的 固 定 密 码 简 单 加 密 的 固 定 密 码, 是 指 把 密 码 进 行 简 单 的 加 密, 但 密 码 仍 然 是 固 定 的, 不 变 的。 简 单 加 密 一 般 有 两 种:“ 钥 匙 盘” 法 和“ 变 换 法”。“ 钥 匙 盘” 法, 就 是 把 密 码 存 放 在 一 张 软 盘 上, 使 用 时, 把“ 钥 匙 盘” 插 入 计 算 机, 系 统 程 序 读 取 软 盘 中 的 密 码。 或 把 密 码 和 操 作 员 姓 名 存 到 数 据 库 中, 此 数 据 库 存 放 于 软 盘 内, 使 用 时 把“ 钥 匙 盘” 插 入 计 算 机, 系 统 读 取 软 盘 中 的 密 码 和 操 作 员 姓 名, 下 面 是 此 法 的 主 要 语 句: USE A:KLK && 到KLK 数 据 库 内 查 找 输 入 的 操 作 员 的 姓 名; I=1 这 种 加 密 方 法 保 密 性 要 好 一 些, 但 每 次 使 用 都 要 用“ 钥 匙 盘” 进 入 系 统, 很 繁 琐。 变 换 法, 就 是 通 过 对 密 码 的 运 算, 使 密 码 发 生 变 化 的 方 法, 一 般 采 用 换 算 法, 常 用 的 加 密 语 句 如 下: PSD =CHR(65)+CHR(66)+CHR(67)+"9" 函 数CHR(), 是 用 来 换 算ASCII 码 的, 换 算 后 的PSD 是ABC9。 用 这 种 简 单 的 换 算, 可 以 避 免 密 码 被 直 接 发 现, 如 果 和 上 述 方 法 混 合 应 用, 保 密 性 就 加 强 了。 3、 简 单 加 密 变 化 的 密 码 以 上 密 码 都 是 固 定 的, 下 面 介 绍 一 种 经 简 单 加 密 变 换 的 密 码。 这 是 利 用 时 间 函 数 来 加 密 的 算 法, 密 码 每 天 都 不 同。 密 码 由 变 化 的 时 间 和 固 定 字 符 构 成。 其 核 心 语 句 为: kl=DATE() PWD= SUBSTR(CDOW(kl),1,3)+"1234" CDOW() 函 数, 输 入 年 月 日, 返 回 星 期 几( 字 符 型)。 操 作 者 根 据 今 天 是 星 期 几, 将 星 期 的 前3 个 英 文 字 母 和 固 定 的“1234” 输 入, 与 变 量PWD 比 较。 程 序 会 把 今 天 的 日 期 换 算 成 星 期 数, 然 后 取 前3 位, 并 加 上“1234”, 合 成 今 天 的 密 码 变 量PWD。 这 样 就 实 现 了 每 天 有 不 同 的 密 码。 保 密 性 加 强 了。 以 上 几 种 加 密 方 法 都 是 传 统 的 简 单 的 加 密 方 法, 其 特 点 是 简 单、 保 密 性 差, 密 码 单 一, 保 护 能 力 较 低, 主 要 用 于Dbase、FOXBASE、FOXBASE +、FOXPRO2.x 中, 由 于 上 述 软 件 的 编 译 不 是 真 正 的 编 译, 其 密 码 容 易 被 发 现。 三、 一 种 新 型 密 码 加 密 方 法 下 面 具 体 介 绍 一 种 基 于VFP5.0 的 密 码 设 定 方 法。 其 特 点 是: 具 有 使 用 登 记 功 能; 每 人 一 个 密 码, 并 可 随 时 更 换; 密 码 经 加 密 运 算, 不 易 被 破 解。 基 本 思 路 如 下: 首 先 建 立 两 个 数 据 库(table), 一 个 用 来 存 放 口 令 及 对 应 的 用 户( 称 为“ 口 令 库”), 另 一 个 存 放 用 户 登 录 使 用 情 况( 称 为“ 登 录 库”)。 在 再 建 立 两 个 窗 口(form), 一 个 用 来 检 查 口 令, 另 一 个 用 来 修 改 口 令。 接 下 来 定 义 两 个 过 程(procedure), 一 个 用 来 给 口 令 加 密(“ 加 密 过 程”), 另 一 个 用 给 口 令 解 密(“ 解 密 过 程”)。 这 个“ 加 密 过 程”, 是 把 密 码 经 加 密 运 算 后 存 入 口 令 库, 而“ 解 密 过 程” 实 际 上 是 把 输 入 的 密 码 经 加 密 运 算 后 与 口 令 库 内 的 密 码 进 行 比 较, 并 不 是 解 密。 为 了 使 密 码 输 入 时 不 被 人 看 见, 要 对 密 码 输 入 的 文 字 框 的 属 性 作 如 下 工 作: 进 入DATA 属 性 栏, 把InputMask 属 性 改 为:XXXXXX, 进 入LAYOUT 属 性 栏, 把PassWordChar 的 属 性 改 为:“*”, 这 样, 输 入 的 密 码 就 不 会 被 别 人 发 现。( 在FOXBASE FOXBASE +,FOXPRO2.X 中, 常 用 设 置 背 景 颜 色 与 输 入 密 码 字 符 颜 色 相 同 的 办 法 来 防 止 别 人 看 见。) “ 解 密 过 程” 代 码 如 下: parameter password BITXOR() 函 数 是vfp 特 有 的 函 数, 它 将 函 数 的 两 个 参 数 转 换 成 二 进 制 数, 并 且 执 行“ 与” 操 作, 返 回 一 个 十 进 制 的 结 果。 用 它 来 进 行 加 密 运 算, 保 密 性 强。 加 上 密 码 键 值n( 取 姓 名 的 第 一 个 拼 音 字 母, 经 求 和, 再 取 平 均 值, 再 取 整 运 算, 换 算 成ASCII 码), 得 到 每 人 一 个 的 密 码。 该“ 过 程” 的 定 义 方 法 如 下: 在 定 义 检 查 密 码 的 窗 口(form) 的 编 辑 状 态 下, 用 鼠 标 点 菜 单form, 选“new method”, 键 入“ 过 程” 名。 然 后 双 击 正 在 编 辑 的 窗 口(form), 然 后 进 入" 过 程" 的 编 辑 状 态, 写 入 如 上 代 码。 加 密 过 程 是 解 密 过 程 的 逆 运 算, 代 码 如 下: parameter password 检 查 密 码 的 思 路 是: 先 到 输 入 姓 名 的 文 字 框 内 取 姓 名, 再 到 口 令 库 内 查 找 姓 名, 如 果 找 不 到 姓 名, 返 回 消 息 窗 口“ 您 不 是 指 定 用 户, 请 与 系 统 管 理 员 联 系 !”, 系 统 退 出; 如 果 找 到 了 用 户 姓 名, 则 继 续 进 行, 把 输 入 的 口 令 和 姓 名 送 到 解 密“ 过 程” 中 进 行 运 算, 解 密“ 过 程” 将 其 解 密, 并 与 口 令 库 内 的 数 据 进 行 比 较, 如 果 不 正 确, 开 始 计 数, 要 求 重 新 输 入 密 码, 三 次 不 正 确, 退 出 系 统。 如 果 正 确, 释 放 当 前 窗 口, 进 入 系 统。 主 要 代 码 如 下: name=trim(ThisForm.Text1.value) 主 要 代 码 如 下: name=ThisForm.Text3.value 注 意, 在 改 变 密 码 的 窗 口(form) 中, 要 定 义“ 加 密 过 程” 和“ 解 密 过 程”, 方 法 如 上 所 述。 以 上 是 一 个 加 密 算 法 的 主 要 思 路 和 关 键 代 码, 其 它 部 分 读 者 可 自 行 设 计。 这 个 加 密 算 法 还 可 以 进 一 步 完 善。 如 采 用 不 同 的 函 数 进 行 运 算, 加 入 日 期, 使 每 个 人 每 天 的 密 码 都 不 一 样( 加 入 时 间 的 算 法 如 前 所 述, 利 用CDOW() 函 数 作 为 键 值 的 一 部 分。)。 |
-- 作者:yangyongn -- 发布时间:5/5/2005 1:45:00 PM -- 数据库安全与保密 随着计算机科学技术的发展与普及,特别是计算机在国民经济各重要部门的广泛应用,计算机安全已是当前信息社会非常关注的突出问题,而数据库系统,担负着存储和管理上述数据信息的任务。因而,如何保证和加强其安全性和保密性,已成为目前迫切需要解决的热门课题。 一、 数据库安全与保密概述 第一层是指系统运行安全,它包括: 法律、政策的保护,如用户是否有合法权利,政策是否允许等; 用户口令字鉴别; ⒈ 用户分类 有了数据库登录权限的用户才能进入数据库管理系统,才能使用数据库管理系统所提供的各类工具和实用程序。同时,数据库客体的主人可以授予这类用户以数据查询、建立视图等权限。这类用户只能查阅部分数据库信息,不能改动数据库中的任何数据。 具有资源管理权限的用户,除了拥有上一类的用户权限外,还有创建数据库表、索引等数据库客体的权限,可以在权限允许的范围内修改、查询数据库,还能将自己拥有的权限授予其他用户,可以申请审计。 具有数据库管理员权限的用户将具有数据库管理的一切权限,包括访问任何用户的任何数据,授予(或回收)用户的各种权限,创建各种数据库客体,完成数据库的整库备份、装入重组以及进行全系统的审计等工作。这类用户的工作是谨慎而带全局性的工作,只有极少数用户属于这种类型。 ⒉ 数据分类 ⒊ 审计功能 三、 数据库加密 ⒈ 数据库密码系统的基本流程 数据脱密是加密的逆过程,即将密文数据转变成可见的明文数据。 一个密码系统包含明文集合、密文集合、密钥集合和算法,其中密钥和算法构成了密码系统的基本单元。算法是一些公式、法则或程序,规定明文与密文之间的变换方法,密钥可以看作算法中的参数。 数据库密码系统要求将明文数据加密成密文数据,数据库中存储密文数据,查询时将密文数据取出脱密得到明文信息。 ⒉ 数据库加密的特点 ⑴ 数据库密码系统应采用公开密钥 ⑵ 多级密钥结构 可以设计一个数据库,其中存放有关数据库名、表名、字段名的子密钥,系统启动后将这些子密钥读入内存供数据库用户使用。与记录相对应的子密钥,一般的方法应是在该记录中增加一条子密钥数据字段。 ⑶ 加密机制 数据库公开密钥加密机制应是一个二元函数: 密文=F(密钥,明文) 当加密算法F确定之后,只要给出密钥和待加密的明文,即可得到相应的密文。脱密过程即是加密过程的逆过程: 明文=F-1(密钥,密文) 由此可知,数据库密码的加密机制应是既可加密又可脱密的可逆过程。 ⑷ 加密算法 著名的MH背包算法就是一种适合数据库加密的算法。它的基本思想是:有一个函数F,使X=F(K,Y),在这里X相当于公开密钥向量,Y相当于明文。在算法F不公开的情况下,若已知K和X,要还原出Y来,穷尽次数为2n次。如果向量的分量n较大时,用穷尽的方法来还原将是十分困难的。 ⒊ 数据库加密的范围 ⑴ 索引字段不能加密 ⑵ 关系运算的比较字段不能加密 ⑶ 表间的连接码字段不能加密 ⒋ 数据库加密对数据库管理系统原有功能的影响 ⑴ 无法实现对数据制约因素的定义 值得注意的是,数据库中的每个字段的类型、长度都有具体的限定。数据加密时,数值类型的数据只能在数值范围内加密,日期和字符类型的数据也都只能在各自的类型范围内加密,密文长度也不能超过字段限定的长度,否则DBMS将无法接受这些加密过的数据。 ⑵ 密文数据的排序、分组和分类 ⑶ SQL语言中的内部函数将对加密数据失去作用 ⑷ DBMS的一些应用开发工具的使用受到限制 在数据库安全和加密技术的研究方面,我们只是作了一些尝试性的工作,许多细节有待于进一步深入。通过研究,我们认识到数据库安全与保密这一领域研究的重要性和迫切性。目前的DBMS对数据库的加密问题基本都没有经过仔细考虑,如果在DBMS层考虑这一问题,那么数据库加密将会出现新的格局。 |
-- 作者:bluehat -- 发布时间:4/19/2006 11:32:00 AM -- 非常感谢啊 我正在做XML的加密与数字签名 啊 看那个W3C的英文真的有点累了 |
W 3 C h i n a ( since 2003 ) 旗 下 站 点 苏ICP备05006046号《全国人大常委会关于维护互联网安全的决定》《计算机信息网络国际联网安全保护管理办法》 |
7,093.750ms |