你好,欢迎来到电脑编程技巧与维护杂志社! 杂志社简介广告服务读者反馈编程社区  
合订本订阅
 
 
您的位置:杂志经典 / 计算机安全与维护
XML电子病历的加密(七)
 

步骤3 : 使用3DES算法对文档进行加密:

SymmetricAlgorithm CSP = new

TripleDESCryptoServiceProvider();

MemoryStream ms = new MemoryStream();

byte [] bty = Encoding.UTF8.GetBytes(strXmlString);

CryptoStream cs = new

CryptoStream(ms,CSP.CreateEncryptor(CSP.Key,CSP.IV),CryptoStreamMode.Write);

cs.Write(bty,0,bty.Length);

XML文档片段读入字节数组,然后用3DES加密算法进行加密。

步骤4 : 使用RSA算法的公钥加密KEYIV

RSACryptoServiceProvider rsa = new

RSACryptoServiceProvider();

//从密钥信息获取RSA的密钥信息

rsa.FromXmlString(GetRSAPublicKey(strKeyName));

string strEncryptedSymmetricKey =

Convert.ToBase64String(rsa.Encrypt(CSP.Key,false));

string strEncryptedSymmetricIV =

Convert.ToBase64String(rsa.Encrypt(CSP.IV,false));

3DES算法用到的KEYIVRSA算法加密。

步骤5 : 构建加密节点。

组装<EncryptedData><EncryptionMethod/><ds:KetInfo>等节点,程序较长在此省略。

5.3 XML解密的实现

解密与加密一样,也需要通过Xpath语句判断加密点的个数,然后使用循环语句逐个解密。

步骤1 : 使用RSA算法的私钥解密KEYIV

首先建立RSA3DES的对象,并定位node元素:

rsa.FromXmlString(GetRSAPrivateKey(node.InnerText));

node=root.SelectSingleNode("descendant::EncryptedKey/CipherData/CipherValue/EncryptedSymmetricKey");

CSP.Key= rsa.Decrypt(Convert.FromBase64String(node.InnerText),true);

node=root.SelectSingleNode("descendant::EncryptedKey/CipherData/CipherValue/EncryptedSymmetricIV");

CSP.IV= rsa.Decrypt(Convert.FromBase64String(node.InnerText), true);

步骤2 : 使用得到的KEYIV解密XML文档:

node=root.SelectNodes("CipherData/CipherValue").Item(0);

byte [] byt = Convert.FromBase64String(node.InnerText);

MemoryStream ms=new MemoryStream(byt);

CryptoStream cs=new CryptoStream

(ms,CSP.CreateDecryptor(CSP.Key,CSP.IV),CryptoStreamMode.Read);

byte[] initialText = new Byte[byt.Length];

//解密文本将其保存为二进制数据

cs.Read(initialText,0,initialText.Length);

6 结语

本文首先根据电子病历结构化的存储结构,提出病历的XML Schema描述,然后探讨了XML电子病历加密与数字签名的方案,并详细说明了其实现步骤。XML作为下一代Web开发的主要技术,在信息交换与存储方面有明显的优势,将其运用到电子病历系统中,可以有效地加强病历的安全性。随着医院信息化的普及,电子病历的加密与签名将十分重要。不过要得到广大患者用户的认可,除技术上的防范措施外,还要在管理上采取严格的控制方法,从而进一步发展以电子病历为核心的医院信息系统。

 

参考文献

 

[1]W3C. XML Schema[EB/OL]http://www.w3.org/XML/Schema.

[2]W3C Recommendation.XML Path Language(XPath) [EB/OL]Vl.0.http://www.w3.org/

   TR/xpath,2003.

[3] Microsoft.net framework[R]. http: //msdn.microsoft.com/netframework/security/

,2004.

[4] BoyerJ.Canonical XML Version 1.0[S].RFC 3076,March 2001.

[5]马永恒, 熊前兴, 杨金娥. W3C XML Schema模式的设计方法研究[J]. 计算机应用研究,2006

[6]肖 林. 浅谈电子病历[J]. 档案管理, 200004(1).

[7]严维良,于津. XML在电子病历中的应用[J]. 汕头大学学报,200315(3).

[8]李浩,孙统风,孟现飞等.基于面向对象思想构建XML Schema[J].微机发展,200313(6):59-64.

  推荐精品文章

·2024年9月目录 
·2024年8月目录 
·2024年7月目录 
·2024年6月目录 
·2024年5月目录 
·2024年4月目录 
·2024年3月目录 
·2024年2月目录 
·2024年1月目录
·2023年12月目录
·2023年11月目录
·2023年10月目录
·2023年9月目录 
·2023年8月目录 

  联系方式
TEL:010-82561037
Fax: 010-82561614
QQ: 100164630
Mail:gaojian@comprg.com.cn

  友情链接
 
Copyright 2001-2010, www.comprg.com.cn, All Rights Reserved
京ICP备14022230号-1,电话/传真:010-82561037 82561614 ,Mail:gaojian@comprg.com.cn
地址:北京市海淀区远大路20号宝蓝大厦E座704,邮编:100089