玩转IPv6

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

一、引导篇

1. 什么是IPv6

互联网协议版本6(IPv6)是被指定为IPv4继任者的下一代互联网协议版本,互联网中最先出现的应用到现在依然占有优势。这是个用于分组交换互联网络的网络层协议。驱使重新设计互联网协议的主要原因是,IPv4地址在可预见的未来中即将被耗尽。IPv6在1998年12月被互联网工程任务小组(Internet Engineering Task Force,简称IETF)通过公布互联网标准规范(RFC 2460)的方式定义出台。

IPv6具有比IPv4大得多的地址空间。这是因为IPv6使用了128比特的地址,而IPv4只用32比特。因此新增的地址空间支持2128(约3.4 ×1038)个地址。这一扩展提供了灵活的地址分配以及路由转发,并消除了对网络地址转换(NAT)的依赖。NAT是获得了广泛部署的减缓IPv4地址耗尽的最有效的方式。

阅读更多

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;

}
}
阅读更多

安装Win7进RAM

以前看过别人将XP装进内存,开机5-8秒, 于是无聊着尝试了将win7装进内存。

需要的东西有: 至少4g的内存, win7精简版(1.3G)

http://blog.163.com/prosen@yeah/blog/static/122513287201082992043836/

步骤:

1.安装FiraDisk驱动: 打开”设备管理器”—————–菜单栏—————–操作—————–添加过时硬件—————–选择FiraDisk中的firadish.inf

阅读更多

混沌序列

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

关于混沌

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

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

混沌来自于非线性动力系统,而动力系统又描述的是任意随时间变化的过程,这个过程是确定性的、类似随机的、非周期的、具有收敛性的,并且对于初始值有极敏感的依赖性。而这些特性正符合序列密码的要求。19**Robert Matthews在Logistic映射的变形基础上给出了用于加密的伪随机数序列生成函数,其后混沌密码学及混沌密码分析等便相继发展起来。混沌流密码系统的设计主要采用以下几种混沌映射:一维Logistic映射、二维He’non映射、三维Lorenz映射、逐段线性混沌映射、逐段非线性混沌映射等,在本文中,我们主要探讨一维Logistic映射的一些特性。

阅读更多

凯撒密码(一)

  “恺撒密码”据传是古罗马恺撒大帝用来保护重要军情的加密系统。(即今天我们所说的:替代密码)

  它是一种代换密码,通过将字母按顺序推后起3位起到加密作用,如将字母A换作字母D,将字母B换作字母E。据说恺撒是率先使用加密函的古代将领之一,因此这种加密方法被称为恺撒密码。

  假如有这样一条指令:

  明文(小写):ji xiao jing

  用恺撒密码加密后就成为:

阅读更多

凯撒密码(二)

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

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

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

举例:(key是*不告诉你,嘿嘿)

阅读更多

C#网页自动填表自动登录

自动填表的方式有很多,关键是获取控件的id或者name。

比如源代码有

1
<input id="pwdInput" tabindex="2" class="ipt-t" type="password" name="password" onMouseOver="fEvent('mouseover',this)" onFocus="fEvent('focus',this)" onBlur="fEvent('blur',this)" onMouseOut="fEvent('mouseout',this)"/>

那么就可以用

1
2
3
4
5
6
7
8
9
10
HtmlDocument doc = webBrowser1.Document;
foreach (HtmlElement em in doc.All)
{
string str = em.Id;
if (str == "pwdInput")
{
em.SetAttribute("value", "abc"); break;

}
}
阅读更多

C#实现扫雷游戏中左右键同时点击

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
private MouseButtons Button;
private long Ticks;
private long TicksDelay = 100000L;

private void btn_Click(object sender, MouseEventArgs e)
{
if (e.Button == MouseButtons.Left)
{
if (DateTime.Now.Ticks - Ticks < TicksDelay && Button == MouseButtons.Right)
{
//左右键"同时"(先左后右)

}
else
{
//左键

}
}
else if (e.Button == MouseButtons.Right)
{
if (DateTime.Now.Ticks - Ticks < TicksDelay && Button == MouseButtons.Left)
{
//左右键"同时"(先右后左)

}
else
{
//右键

}
}
Button = e.Button;
Ticks = DateTime.Now.Ticks;

}

C#定义变量左右值及桶模拟

上图显示了具有两个分支的变量i,这两个分支分别名为lvalue和rvalue.

变量的lvalue是指存储变量的内存地址。变量lvalue总是被解释为内存地址,是location value 的简写。

变量rvalue是指当前存储在变量中的实际值,代表register value。当定义一个变量时,lvalue先被赋值,值是分配的地址号。当对变量赋值时,rvalue被赋值,值就是被赋予的实际值。同时,lvalue与rvalue可以理解成变量的左右值,即left value和right value。

举例来说,语句

阅读更多

图解C#类的内存分配

对象的创建

格式:

clsPerson myFriend = new clsPerson();

或者

clsPerson myFriend;
myFriend = new clsPerson();
阅读更多