/img/avatar.jpg

BMP格式分析

C#下将BMP转换成二进制是比较容易的,方法如下

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
byte[] bufPic;
string filePath = "";
Stream myStream;
MemoryStream picFile = new MemoryStream();
OpenFileDialog open = new OpenFileDialog();
open.Filter = "bmp files (*.bmp) | *.bmp";
open.RestoreDirectory = true;
if (open.ShowDialog() == DialogResult.OK)
{
	if ((myStream = login.OpenFile()) != null)
	{
		myStream.Close();
	}
}

filePath = open.FileName.ToString();
Image image = Image.FromFile(filePath);
image.Save(picFile, ImageFormat.Bmp);
bufPic = picFile.GetBuffer();

其实转换的结果是以8位二进制分割的十进制数(0~255),若是真要得到纯二进制,还需要进一步转换。我曾做过很多实验,目的是测试这些数字和图片本身之间的关系,虽然学习过多媒体技术,但是对于详细的bmp分解,并没有太多认识。当然,在实验前还要把"二进制"还原bmp的方法说明一下:

玩转IPv6

前段时间小结了一下 IPv6的相关设置和用途,比如免费上网,下载IPv6资源等。经过近一年的使用,对于IPv6有了更进一步的认识,恰逢csdn学习心得活动,所以特意整理一番,针对使用IPv6做一个全面的介绍。不足之处还请大家提出宝贵意见。

ADO.net存取image类型

最近试验需求,用到了sql server中的image字段,存取方法如下:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
public void Save()
{
    using (System.IO.FileStream stream = new System.IO.FileStream())
    {
        byte[] buffer = new byte[stream.Length];
        stream.Read(buffer, 0, (int)stream.Length);
        stream.Close();
        string strName = System.IO.Path.GetFileNameWithoutExtension(file);
        SqlCommand cmd = new SqlCommand("Insert into Temp(name,photo) values(@name,@image)", sqlConn);
        cmd.Parameters.Add("@name", SqlDbType.VarChar).Value = strName;
        cmd.Parameters.Add("@image", SqlDbType.Image).Value = buffer;
        cmd.ExecuteNonQuery();
    }
}

取:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
public void GetImage()
{
    SqlCommand cmd = new SqlCommand(@"SELECT name, photo FROM Temp", sqlConn);
    sqlConn.Open();
    SqlDataReader reader = cmd.ExecuteReader();
    if (reader.Read())
    {
        image_filename = (string)reader.GetValue(0);
        byte[] image_bytes = (byte[])reader.GetValue(1);
        MemoryStream ms = new MemoryStream(image_bytes);
        Bitmap bmap = new Bitmap(ms);
        return bmap;

    }
}

混沌序列

最近做信息安全方面的项目,看到一些关于混沌变换的论文,总结一番。

关于混沌

如果一个系统的演变过程对初始的状态十分敏感,就把这个系统称为是混沌系统。

在1972年12月29日,美国麻省理工教授、混沌学开创人之一E.N.洛仑兹在美国科学发展学会第139次会议上发表了题为《蝴蝶效应》的论文,提出一个貌似荒谬的论断:在巴西一只蝴蝶翅膀的拍打能在美国得克萨斯州产生一个龙卷风,并由此提出了天气的不可准确预报性。至此以后,人们对于混沌学研究的兴趣十分浓厚,今天,伴随着计算机等技术的飞速进步,混沌学已发展成为一门影响深远、发展迅速的前沿科学。

凯撒密码(二)

上篇显示了用错误的key得到了错误的结果,现在使用正确的key

/caesar_cipher_b/1.jpg

这样就得到了正确的结果。

当然,这个程序只是演示凯撒密码的一个思路,没有对其他符号加密,这样有个很严重的后果,就是很key容易被破解。