2019独角兽企业重金招聘Python工程师标准>>>
实现软件的注册功能方法很多,最需要考虑的就是不能轻易的让使用者破解,在这里,我就谈谈“.NET快速开发整合框架(RDIFramework.NET)”中平台注册功能的实现方法。在RDIFramework.NET中,注册功能主要方法就是对计算机唯一硬件信息进行RSA数字签名达到软件注册和保护的功能,该方法实现简单,安全性相应较高。
计算机唯一硬件信息(我们知道计算机中的关键部件如CPU,主板等在全球范围内都有一个独一无二的产品序列 ,用户通过注册模块获取这些产品序列 (即传统所说的:机器吗)并将它发送给软件开发商要求进行RSA数据签名,软件开发商获得这些机器码后利用手中的私钥对这些信息进行RSA数字签名,生成的签名信息(即注册码)发回给用户,用户将收到的注册码输入注册模块的注册码框,软件即可利用公钥执行签名验证,如果输入的注册码被证明就是经过开发商数字签名的机器码,则完成注册过程。
注册功能项目结构图如下所示:
图2 注册文件管理器
通过“注册文件管理器”,我们就可以根据用户提供的信息来生成软件的注册文件。
客户端的注册主要就是根据我们提供的注册文件与公钥,来验证注册文件是否为当前客户的有效注册文件,如果有效,注册成功,无效则注册失败!客户端注册功能设计参考如下所示:
图4注册成功
服务端注册码生成核心代码:
一、 生成公/私钥文件:
二、 生成注册文件:
三、 验证注册文件:
至此,软件的注册功能就完成了,当然还有其他很多方法,比如:
Android
注册界面代码
如下:注册界面,有四个可填项: 用户名,密码,确认密码,手机 码 我就是想知道,当我填完了四项内容后,点击提交按钮,我所填的内容能保存在应用中,并在再次调到登录界面时能用刚注册的信息成功登录,这是可以实现的吧/span>
code:
2:配置中声明另外一个acitivity
我们先看第一步,这里是触屏处理中的一段代码:
代码如下 | |
public boolean onTouchEvent(MotionEvent event) { float pointx = event.getX(); float pointy = event.getY(); if (pointx > bp_x + 14 && pointx if (pointy > bp_y + 43 && pointy // 帐 Intent i = new Intent();// 得到一个意图的实例 i.putExtra(“count”, 1);// 写出数据 i.putExtra(“himi”, str_zh); i.setClass(MainActivity.instance, Register.class);// 设置当前activity以及将要操作的类 MainActivity.instance.startActivity(i);// 用当前activity来启动另外一个activity } } } |
显示定义一个intent对象,Intent这个类的机制是协助交互的,详细的说明这里不多讲。
Intent中的putExtra()函数是起到两个activity之间交互交互的作用,这个方法类似 hashtable 或者hashmap中的put,第一个参数是key(索引) ,后一个参数volue(值),根据key我们可以得到对应的volue了。那么后面我也附上接受的处理。
Intent 中的setClass()函数也是传入两个参数,第一个是传入当前实例的activity对象,后面一个参数指需要打开的activity这个类!然后我们就可以利用当前activity对象来启动另外一个activity了。然后我们看下在另外一个activity是如何创建并且怎么接受数据的。
代码如下 | |
package com.himi; import android.app.Activity; /** * @author Himi **/ public class Register extends Activity { @Override Intent intent = this.getIntent(); |
以上代码可以看出,新建一个activity其实只需要继承Activity以及重写onCreate()方法即可。当然创建的还需要一步很重要的步骤,我会在第二步中会详细说明,这里我们看下是如何接受之前的activity传来数据的。
代码如下 | |
Intent intent = this.getIntent(); count = (byte) intent.getIntExtra(“count”, 0); |
接受也是很简明易懂,创建一个Intent 意图对象,调用来去getIntExtra函数得到之前传来的数据,根据key。当然还有getStringExtra()等等函数都是类似,只是根据你传入的数据不同选择不同函数罢了。同学们应该注意的是getIntExtra中第二个参数是什么意思,其实就是一个对于找不到key相匹配的时候会默认return 0;
那么下面介绍第二步:在配置中声明
当创建一个activity的时候我们必须在AndroidMainFeset.xml中去声明我们创建的这个类是个Activity。
end
文章知识点与官方知识档案匹配,可进一步学习相关知识Python入门技能树首页概览215386 人正在系统学习中 相关资源:细谈软件需求分析过程:提取、抽象、升华_需求分析过程-专业指导…
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!