導航:首頁 > 文件目錄 > xml文件內容加密

xml文件內容加密

發布時間:2024-11-17 11:12:28

① C# 加密、解密 XML 文件操作

以下給出里兩種加密方法1,MD5 ;2,RSA
MD5加密如下:

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Security.Cryptography;

namespace 數據加密與解密
{
public partial class frmMD5 : Form
{
public frmMD5()
{
InitializeComponent();
}

private void button1_Click(object sender, EventArgs e)
{
if (textBox1.Text == "")
{ MessageBox.Show("請輸入加密數據"); return; }
MD5CryptoServiceProvider M5 = new MD5CryptoServiceProvider();
textBox2.Text = ASCIIEncoding.ASCII.GetString(M5.ComputeHash(ASCIIEncoding.ASCII.GetBytes(textBox1.Text)));
}

//MD5是不可的演算法。破解只有用暴力破解法
private void button2_Click(object sender, EventArgs e)
{
MD5CryptoServiceProvider M5 = new MD5CryptoServiceProvider();
//this.textBox3.Text=M5.
}

}
}
RSA加密如下:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Security.Cryptography;

namespace 數據加密與解密
{
public partial class frmRSA : Form
{
public frmRSA()
{
InitializeComponent();
this.Text = "RSA加密解密";
tb_Encrypt.ReadOnly = true;
tb_Decrypt.ReadOnly = true;
}

private void button1_Click(object sender, EventArgs e)
{
//使用默認密鑰創建RSACryptoServiceProvider對象
RSACryptoServiceProvider rsa = new RSACryptoServiceProvider();
//顯示包含公鑰/私鑰對的XML表示形式,如果只顯示公鑰,將參數改為false即可
rtb_Keys.Text = rsa.ToXmlString(true);
//將被加密的字元串轉換為位元組數組
byte[] dataToEncrypt = Encoding.UTF8.GetBytes(tb_Input.Text);
try
{
//得到加密後的位元組數組
byte[] encryptedData = rsa.Encrypt(dataToEncrypt, false);
tb_Encrypt.Text = Encoding.UTF8.GetString(encryptedData);
//得到解密後的位元組數組
byte[] decryptedData = rsa.Decrypt(encryptedData, false);
tb_Decrypt.Text = Encoding.UTF8.GetString(decryptedData);
}
catch (Exception err)
{
MessageBox.Show(err.Message);
}
}
}
}

② 在layout.xml布局文件里,設置一個EditText的顯示為密碼加密,這行代碼應該怎麼寫

設置inputTypetextPassword即可實現輸入框隱藏文字效果

完整如下:

<EditText
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:inputType="textPassword"
/>

③ c#加密xml文件

xml加密(XML Encryption)是w3c加密xml的標准。這個加密過程包括加密xml文檔的元素及其子元素,通過加密,xml的初始內容將被替換,但其xml格式仍然被完好的保留。 介紹 我們有3個加密xml的方法 1、僅僅使用對稱加密的方法加密xml 這種加密方法只使用一個密鑰,也就是說無論是加密xml還是解密xml都使用一個相同的密鑰。因為這個密鑰不會在被加密的xml中保存,所以我們需要在加密和解密的過程中載入這個密鑰並保護它不被竊取。 2、使用對稱加密和非對稱加密相結合的方法來加密xml 這種方法需要一個用於加密數據的對稱密鑰和一個用於保護這個對稱密鑰的非對稱密鑰。被加密的對稱密鑰和被加密的數據一起保存在xml文檔中。當用私有非對稱密鑰解密密鑰的時候要用公開非對稱密鑰對密鑰進行加密。 本文就將使用這種方法。想學到其他更多的方法請參看MSDN等到更多的信息。 (譯者註:非對稱加密演算法需要兩個密鑰:公開密鑰(publickey)和私有密鑰(privatekey)。公開密鑰與私有密鑰是一對,如果用公開密鑰對數據進行加密,只有用對應的私有密鑰才能解密;如果用私有密鑰對數據進行加密,那麼只有用對應的公開密鑰才能解密。因為加密和解密使用的是兩個不同的密鑰,所以這種演算法叫作非對稱加密演算法。) 3、使用X.509加密xml,這種方法是用X.509作為非對稱密鑰,它由諸如VeriSign之類的第三方提供。 該網站有具體方法,請查閱 http://hi..com/jam12315/blog/item/42b5c4c426ee15af8326ac3b.html 參考文獻: tp://dotnetslackers.com/articles/xml/XMLEncryption.aspx

滿意請採納

④ 如何使用C#加密解密XML文檔

可以用DES對稱加/解密。XML文檔讀寫我就簡單的用一個序列化的例子了。我只寫加/解/序列化,怎麼顯示你隨意了。
1、建立一個Student的類了,四個屬性
public class Student
{
public string SID { get; set; }

public string Name { get; set; }

public string Score { get; set; }

public string Address { get; set; }
}
2、在你要加/解的頁面加Using
using System.Security.Cryptography;
using System.IO;
using System.Xml.Serialization;
就是序列化、加密、IO了
3、寫兩個方法,加/解
/// <summary>
/// DES的加密方法
/// </summary>
/// <param name="pToEncrypt"></param>
/// <param name="sKey"></param>
/// <returns></returns>
public string Encrypt(string pToEncrypt, string sKey)
{
DESCryptoServiceProvider des = new DESCryptoServiceProvider();
byte[] inputByteArray = Encoding.Default.GetBytes(pToEncrypt);
des.Mode = CipherMode.ECB;
des.Padding = PaddingMode.Zeros;
des.Key = ASCIIEncoding.ASCII.GetBytes(sKey);
des.IV = ASCIIEncoding.ASCII.GetBytes(sKey);
MemoryStream ms = new MemoryStream();
CryptoStream cs = new CryptoStream(ms, des.CreateEncryptor(), CryptoStreamMode.Write);
cs.Write(inputByteArray, 0, inputByteArray.Length);
cs.FlushFinalBlock();
StringBuilder ret = new StringBuilder();
foreach (byte b in ms.ToArray())
{
ret.AppendFormat("{0:X2}", b);
}
return ret.ToString();
}
/// <summary>
/// DES的解密
/// </summary>
/// <param name="pToDecrypt"></param>
/// <param name="sKey"></param>
/// <returns></returns>
public string Decrypt(string pToDecrypt, string sKey)
{
DESCryptoServiceProvider des = new DESCryptoServiceProvider();
des.Mode = CipherMode.ECB;
des.Padding = PaddingMode.Zeros;
byte[] inputByteArray = new byte[pToDecrypt.Length / 2];
for (int x = 0; x < pToDecrypt.Length / 2; x++)
{
int i = (Convert.ToInt32(pToDecrypt.Substring(x * 2, 2), 16));
inputByteArray[x] = (byte)i;
}
des.Key = ASCIIEncoding.ASCII.GetBytes(sKey);
des.IV = ASCIIEncoding.ASCII.GetBytes(sKey);
MemoryStream ms = new MemoryStream();
CryptoStream cs = new CryptoStream(ms, des.CreateDecryptor(), CryptoStreamMode.Write);
cs.Write(inputByteArray, 0, inputByteArray.Length);
cs.FlushFinalBlock();
StringBuilder ret = new StringBuilder();
return System.Text.Encoding.Default.GetString(ms.ToArray()).TrimEnd('\0');
}
//上面為什麼要TrimEnd,因為ms.ToArray()裡面以8位為單位增長,你字元串長11位,這里就是16位,最後面是\0字元,去掉就行。
4、調用加解就很簡單了。
private void button1_Click(object sender, EventArgs e)
{
string Key = "12345678"; //DES的密鑰,8位字元串,不要用中文,如果要解密,這個密鑰也是一樣的。

List<Student> list = new List<Student>()
{
new Student(){ SID="1", Name="張三", Score="87.5", Address="A小區asfasdf"},
new Student(){ SID="2", Name="李四", Score="77.5", Address="B小區asdfsdf"},
new Student(){ SID="3", Name="王五", Score="67.5", Address="C小區23412423434535345"},
};
//假定要加密的是分數和地址

foreach (var obj in list)
{
obj.Score = Encrypt(obj.Score, Key);
obj.Address = Encrypt(obj.Address, Key);
}
XmlSerializer xs = new XmlSerializer(typeof(List<Student>)); //序列化建立xml
Stream stream = new FileStream(@"d:\12345.XML", FileMode.Create, FileAccess.ReadWrite, FileShare.ReadWrite);
xs.Serialize(stream, list);
stream.Close();
}
上面是寫一些數據,然後加密兩個屬性:Score和Address。存到D盤
解就是反過來呀。
private void button2_Click(object sender, EventArgs e)
{
string Key = "12345678"; //DES的密鑰

XmlSerializer xs = new XmlSerializer(typeof(List<Student>));
Stream stream = new FileStream(@"d:\\12345.XML", FileMode.Open, FileAccess.Read, FileShare.Read);
var str = xs.Deserialize(stream);
stream.Close();
var list = (List<Student>)str; //轉回List

foreach (var obj in list)
{
obj.Score = Decrypt(obj.Score, Key);
obj.Address = Decrypt(obj.Address, Key);
}
}
其實加解密方法有好多,如果有針對整個XML文件進行壓縮、加密的代碼可發出來一共學習

閱讀全文

與xml文件內容加密相關的資料

熱點內容
文件夾的相片如何列印出來 瀏覽:84
mpg文件如何刻錄dvd 瀏覽:801
win10edge注冊表 瀏覽:309
cad圖形如何復制到另一個文件中 瀏覽:775
sim文件在手機上用什麼打開 瀏覽:183
ubunturoot文件夾 瀏覽:745
手機文件誤刪能否恢復數據 瀏覽:955
照片文件名中的數字代表什麼 瀏覽:44
cs6裁切工具 瀏覽:235
資料庫超過多少數據會卡 瀏覽:858
CAD落圖文件 瀏覽:125
怎樣翻譯文件內容 瀏覽:679
戴爾r910安裝linux 瀏覽:69
有線電視升級失敗 瀏覽:560
火絨安全把文件刪掉了在哪裡找 瀏覽:503
手機qq網路狀態方框 瀏覽:225
哪裡有文件紙袋 瀏覽:873
復制的東西能不能粘貼到空文件夾 瀏覽:876
酒店沒有網路如何繳費 瀏覽:380
win10開機滾動很久 瀏覽:520

友情鏈接