测试Rockey4Smart加密锁之模块字和三算法的用法C#代码

测试Rockey4Smart加密锁之模块字和三算法的用法C#代码

private void btn_LookZzghjk_Click(object sender, EventArgs e) { if (this.r == null) { MessageBox.Show("先执行[查找加密锁]!", "提示"); return; } string val = ""; string sn = ""; //获取界面上的密码 this.GetPassword(); r.Find(); //打开加密锁 uint ret = r.Open(); Ry4ErrCode enumErrCode = r.GetRetCodeEnum(ret); if (enumErrCode == Ry4ErrCode.ERR_SUCCESS) { string msg = ""; //读取用户存储区数据 ushort pos = 0; ushort len = 100; byte[] buffArray = new byte[1000]; ret = r.Read(pos, len, ref buffArray); enumErrCode = r.GetRetCodeEnum(ret); if (enumErrCode == Ry4ErrCode.ERR_SUCCESS) { string sn_val = r.Get_Buffer_Value(buffArray);// System.Text.Encoding.Default.GetString(buffArray); msg += sn_val; } else { msg += "," + r.GetERR_Cn(ret); } //获取计时信息 //if (rb_js.Checked == true) //{ ushort js_val = new ushort(); byte[] t_buff = new byte[1024]; TimerType timertype = TimerType.Hour; ret = r.Get_Timer(0, ref js_val, ref timertype, ref t_buff); string js_val_str = System.Text.Encoding.Default.GetString(t_buff); msg += "," + js_val_str; //} //else //{ //计次信息 ushort c_val = new ushort(); EnumDecreasable da = EnumDecreasable.NoDecreasable; r.Get_Counter(0, ref c_val, ref da); msg += "," + c_val.ToString(); //} MessageBox.Show(msg, "提示"); //检查模块字状态程序0-63个模块字单元 ushort Validate=0; ushort Decreasable=0; msg = ""; for (ushort tpos = 0; tpos < 64; tpos++) { Validate = 0; Decreasable = 0; ret = r.Check_Module(tpos, ref Validate, ref Decreasable); if (ret == 0) { msg +=" pos="+ tpos + "=有效值为" + r.GetHex4(Validate) + ",递减值:" + r.GetHex4(Decreasable) ; if (tpos % 2 == 0) { msg +="\n"; } } } MessageBox.Show(msg, "检查模块字状态-提示"); //算法一测试 //(1)设置模块字4的值为0x2121,不递减 r.Set_Module(4, 0x2121, EnumDecreasable.NoDecreasable); string cmds="H=H^H, A=A*23, F=B*17, A=A+F, A=A+G, A=A<C, A=A^D, B=B^B, C=C^C, D=D^D"; //(2)写入算法00 ret=r.Write_Arithmetic(0, r.Get_Buffer_Value(cmds)); uint lp1 = 0; //计算地址 uint lp2 = 4; //模块字pos ushort p1 = 5; ushort p2 = 3; ushort p3 = 1; ushort p4 = 0xffff; //(3)计算一 ret=r.Calculate_1(ref lp1, ref lp2, ref p1, ref p2, ref p3, ref p4); msg="Result = ((5*23 + 3*17 + 0x2121) < 1) ^ 0xffff = 0xBC71\n"; msg += "A=" + r.GetHex4(p1) + ",B=" + r.GetHex4(p2) + ",C=" + r.GetHex4(p3) + ",D=" + r.GetHex4(p4); MessageBox.Show(msg, "算法一测试-提示"); //算法二测试 msg = ""; //(1)写入算法10 string c2_cmds="A=A+B, A=A+C, A=A+D, A=A+E, A=A+F, A=A+G, A=A+H"; r.Write_Arithmetic(10, r.Get_Buffer_Value(c2_cmds)); //(2)种子码 lp2 = 0x12345678; r.Seed(lp2, ref p1, ref p2, ref p3, ref p4); msg += "种子码为:"+r.GetHex8(lp2)+",E=" + r.GetHex4(p1) + ",F=" + r.GetHex4(p2) + ",G=" + r.GetHex4(p3) + ",H=" + r.GetHex4(p4)+"\n"; //(3)计算二 lp1 = 10; //计算地址 lp2 = 0x12345678; //种子码 p1 = 1; p2 = 2; p3 = 3; p4 = 4; ret = r.Calculate_2(ref lp1, ref lp2, ref p1, ref p2, ref p3, ref p4); msg += "Result =d03a + 94d6 + 96a9 + 7f54 + 1 + 2 + 3 + 4=0x7b17\n"; msg += "A=" + r.GetHex4(p1) + ",B=" + r.GetHex4(p2) + ",C=" + r.GetHex4(p3) + ",D=" + r.GetHex4(p4); MessageBox.Show(msg, "算法二测试-提示"); //算法三测试 msg = ""; //(1)写入算法 string c3_cmds = "A=A+B, A=A+C, A=A+D, A=A+E, A=A+F, A=A+G, A=A+H,A=A+I"; r.Write_Arithmetic(17, r.Get_Buffer_Value(c3_cmds)); //(2)设置模块字的值 r.Set_Module(0, 1, EnumDecreasable.NoDecreasable); r.Set_Module(1, 2, EnumDecreasable.NoDecreasable); r.Set_Module(2, 3, EnumDecreasable.NoDecreasable); r.Set_Module(3, 4, EnumDecreasable.NoDecreasable); r.Set_Module(4, 5, EnumDecreasable.NoDecreasable); //(3)计算三 lp1 = 17; //计算地址 lp2 = 0; //首地址0,1,2,3 p1 = 1; p2 = 2; p3 = 3; p4 = 4; ret = r.Calculate_3(ref lp1, ref lp2, ref p1, ref p2, ref p3, ref p4); msg += "Result = 1+2+3+4+1+2+3+4=0x14\n"; msg += "A=" + r.GetHex4(p1) + ",B=" + r.GetHex4(p2) + ",C=" + r.GetHex4(p3) + ",D=" + r.GetHex4(p4); MessageBox.Show(msg, "算法三测试-提示"); msg = ""; lp1 = 17; //计算地址 lp2 = 1; //首地址1,2,3,4 p1 = 1; p2 = 2; p3 = 3; p4 = 4; ret = r.Calculate_3(ref lp1, ref lp2, ref p1, ref p2, ref p3, ref p4); msg += "Result = 2+3+4+5+1+2+3+4=0x18\n"; msg += "A=" + r.GetHex4(p1) + ",B=" + r.GetHex4(p2) + ",C=" + r.GetHex4(p3) + ",D=" + r.GetHex4(p4); MessageBox.Show(msg, "算法三测试-提示"); } //关闭加密锁 r.Close(); }
---the---end---

---vp:hsg

---create date:2012-05-10


转载于:https://www.cnblogs.com/sqlite3/archive/2012/05/10/2566703.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值