由于业务中最近需要使用到加密狗,增加对Web代码的管控,所以需要进行加密狗使用的研究

首先,对于没有接触使用过加密狗的人需要有个大致的认识,加密狗分为 MasterDog,

1.下载加密狗的开发套件,这个一般购买加密狗厂商会提供 (safenetftp%5Csuperdog%5CSuperDog-R-2.3.1.56436.iso)

安装完成之后会在看到如上图的一个菜单项

2.代码集成加密狗

代码中集成加密狗,使用中将加密狗集成到了过滤器中,针对请求检查加密狗的状态,加密狗提供了.net的开发sdk,包含如下的dll

a.自定义过滤器

    public class dogFilter : FilterAttribute, IActionFilter
{ void IActionFilter.OnActionExecuted(ActionExecutedContext filterContext)
{
}
void IActionFilter.OnActionExecuting(ActionExecutingContext filterContext)
{
if (filterContext.Controller.GetType() != typeof(ErrorController))
{
if (!DogValidate.JudgeDog())
filterContext.Result = new RedirectResult("/Error/NoAuthorized?Message=对不起,未插入软件狗,无权限操作系统!");
}
}
}

b.注册过滤器

c.DogValidata类的编码

public static class DogValidate
{
private static string m_vendorCodeString = "sRzyJecV/0ZD/lqK4JTnNTloxW9gCSVqCKUpibPV7nupz9d2XpFUPMQhAr9sZvGin+x06jdhKzIPbtCp4BkTsW+7Ukbu4xR1aU8TQ5is1tEIpkeoeQVtpZg7Sa3tfh9x6WKqRL7JcF8y9EP/zJbwNUhw2BpgFy0bGRe12koZncRwMsJow6bhQ2OeU1IXhGLwYFcuyncNDnSt9cKQKMzLLYm7/LbxkLwfEIOdXeHtiLaefnoFsrVgsYt631Qn6DeFkn9cOQKZyvqHNUZBrXjIlc/0cTdjDAhN3hZHpzFM0mBMkgaJs7hAgvfOiRfGi0GqnQ9cbdYMCktP9A2aIc0+NyGt3eCcejgiH57/hTQldU1DHAKhj6kizDSmvQMHISezzizXyEn2Sc+dblHPzBEzDybuQky44WnB/uHJmAfp5Wp0NFO6/hMIBfwOkhj3ZxG4hSn4lEuyVX9AmNRhJBbZMTUGjjvfXNFbzLHaPyxGt0Ya9l4M7T52H9ilw+OM6ZW77uWf+ufAEoiNxT4D0GsCDFDP7rxRhAFop7LXSPSuLadcDnrLXDjg+BiejczvTN0M4WQ/w7EqJVQo5kWAaTJeMrTPr8IkJ7xidHWskWnHPdXK6ZX8aIAC+8fQIxdyCltPppuiaHeGpcnxKrbo9/lhmmLQkIAlH+ND21h1SticidCKOfICrOeuOYYOBDvJJSUN2mqK6EyWUpp4z2FVzoKzkQnxCMOtaa4paA/Vaw8wAua/NIj19h7TT/I67tTwrYUkHdfIg8oyHEW/dfWs60ACxWixULSIVqlk3vPDTlJHttuSkUNucggJYxooSGGiyp3x8AEn6CjX0vmxiqYXwmPhlqkdqoh8ACdH3XoYMzNKo9fxkPardQZDJayMM9hxY5InwWYrL8hKY0l4fwJDnZR8nKdBNZAo6f+iVWWZK3mxYTKymVuUkvBEpHRhyuzSVWdEm6l9Q1frLZYBPrJX2j2ngw==";
public static string m_defaultScope = "<?xml version=\"1.0\" encoding=\"UTF-8\" ?> " +
"<dogscope> " +
" <license_manager hostname =\"localhost\" /> " +
"</dogscope>";
public static bool JudgeDog(int num = )
{
try
{
DogFeature feature = DogFeature.FromFeature(num);
Dog dog = new Dog(feature);
DogStatus status = dog.Login(m_vendorCodeString, m_defaultScope);
if (status != DogStatus.StatusOk)
{
if (status == DogStatus.FeatureNotFound)
{
return JudgeDog();
}
return false;
}
}
catch (Exception e)
{
throw new Exception("狗驱动加载失败,请执行目录下的工具=》软件狗问题请执行我.exe");
}
return true;
}
}

上诉的代码中 m_vendorCodeString,m_defaultScope 购买加密狗时,sdk会提供,主要是通过dog.Login来进行验证,这里又涉及到加密狗的特征问题,每个加密狗会有多个特征,这里的DogFeature.FromFeature根据特征ID获取不同的特征来验证,这里我在使用的过程中只设置了一个特征,就是有效期,例如设置系统有效期为一年,一年后将不能使用,下面看看加密狗该如何配置特征,来配合程序检测

3.加密狗工具的使用,配置特征

加密狗使用中,有SuperDog Master(母狗)SuperDog(子狗)的区分,母狗用来编程子狗,子狗随软件一起给客户部署插入use即可

a.电脑上插入母狗以及子狗

b.选择加密狗工具包

b.选择授权管理工具

点击添加许可特征

上图配置的就是特征,包含特征ID,以及过程日期,这里需要配置允许远程桌面访问,否则远程连接会有问题,特征ID配合程序的 DogFeature.FromFeature(num);中num的值一致即可

然后编程加密狗,将特征写入加密狗

查看加密狗的状态,看编程的结果

软件发行过程中,如果IIS的应用程序池需要设置为 允许32位程序运行

.Net中Web增加加密狗管理的更多相关文章

  1. ASP.NET MVC系列:web.config中ConnectionString aspnet_iis加密与AppSettings独立文件

    1. web.config中ConnectionString aspnet_iis加密 web.config路径:E:\Projects\Libing.Web\web.config <conne ...

  2. web页在微信中访问增加遮罩层 右上角弹出在浏览器中打开

    https://blog.csdn.net/zgsdzczh/article/details/79744838 web页在微信中访问增加遮罩层 右上角弹出在浏览器中打开   <style typ ...

  3. Rockey 4加密狗介绍

    Rockey 4加密狗介绍 特点:该加密狗是单片机加密狗时代飞天公司的主力产品,R4一样继承了R2的硬件特征,具有全球唯一性硬件ID.R4内置了硬件随机数生成器,可以进行一些抗跟踪,或在硬件算法中参与 ...

  4. 磐石加密狗NT88管理层API

    磐石加密狗NT88管理层API   直接贴代码了 1 using System; 2 using System.Collections.Generic; 3 using System.Text; 4 ...

  5. Oracle中对列加密的方法

    Oracle中对列加密的方法 2011-12-22 17:21:13 分类: Linux Oracle支持多种列加密方式: 1,透明数据加密(TDE):create table encrypt_col ...

  6. 对web.config加密,和解密码详细说明

    可以使用受保护配置来加密 Web 应用程序配置文件(如 Web.config 文件)中的敏感信息(包括用户名和密码.数据库连接字符串和加密密钥).对配置信息进行加密后,即使攻击者获取了对配置文件的访问 ...

  7. Asp.net中web.config配置文件详解(一)

    本文摘自Asp.net中web.config配置文件详解 web.config是一个XML文件,用来储存Asp.NET Web应用程序的配置信息,包括数据库连接字符.身份安全验证等,可以出现在Asp. ...

  8. web页面内容优化管理与性能技巧

    来源:GBin1.com 回 想一下,以前我们不得不花费大量时间去优化页面内容(图片.CSS等等),如今用户有更快速的互联网链接,我们似乎能够使用更大的图像或更大的闪 存文件,里面包含的有视频或者图片 ...

  9. 使用USB Key(加密狗)实现身份认证

    首先你需要去买一个加密狗设备,加密狗是外形酷似U盘的一种硬件设备! 这里我使用的坚石诚信公司的ET99产品 公司项目需要实现一个功能,就是客户使用加密狗登录, 客户不想输入任何密码之类的东西,只需要插 ...

随机推荐

  1. Linux find用法

    Linux中find常见用法示例 ----摘抄哪里忘记了 ·find   path   -option   [   -print ]   [ -exec   -ok   command ]   {} ...

  2. 1-1 maven 学习笔记(1-6章)

    一.基础概念 1.Maven作为Apache组织中颇为成功的开源项目,主要服务于基于Java平台的项目构建,依赖管理和项目信息管理.从清理,编译,测试到生成报告,到打包部署,自动化构建过程. 还可以跨 ...

  3. npm包使用语义化版本号

    npm 采用语义版本管理软件包.所谓语义版本,就是指版本号为a.b.c的形式,其中a是大版本号,b是小版本号,c是补丁号. 一个软件发布的时候,默认就是1.0.0版.如果以后发布补丁,就增加最后一位数 ...

  4. NodeJS定时任务

    在实际开发项目中,会遇到很多定时任务的工作.比如:定时导出某些数据.定时发送消息或邮件给用户.定时备份什么类型的文件等等 一般可以写个定时器,来完成相应的需求,在node.js中自已实现也非常容易,接 ...

  5. Linux下mysql的常用操作

    Linux下mysql的常用操作: 显示数据库 show databases; 选择数据库 use 数据库名; 显示数据库中的表 show tables; 显示数据表的结构 describe 表名; ...

  6. 打造Linux回收站

    linux是没有回收站概念的,一旦误删除文件了是很难很难找回来的,对普通用户而言误删除文件就等于永久性不可逆丢失数据了:不过可以改造一下rm命令来变相实现回收站功能,实际上就是mv命令转移文件到指定路 ...

  7. java排序算法(五):快速排序

    java排序算法(五):快速排序 快速排序是一个速度非常快的交换排序算法,它的基本思路很简单,从待排的数据序列中任取一个数据(如第一个数据)作为分界值,所有比它小的元素放到左边.所有比它大的元素放到右 ...

  8. 将 Shiro 作为应用的权限基础 四:shiro的配置说明

    Apache Shiro的配置主要分为四部分: SecurityManager的配置 URL过滤器的配置 静态用户配置 静态角色配置 其中,由于用户.角色一般由后台进行操作的动态数据,比如通过@Req ...

  9. 一次精疲力尽的改bug经历

    一.介绍 最近一直在做有关JavaScriptCore的技术需求,上周发现一个问题,当在JavaScriptCore在垃圾回收时,项目会有一定几率发生崩溃.崩溃发生时调用堆栈如下: 图1 调用堆栈 先 ...

  10. MySQL升级-5.6升级到5.7版本&切换GTID模式

          目前未在生产环境中升级过数据库版本,倒是在测试环境跟开发环境升级过.       可以通过mysqldump sql文件进行升级,也可以通过mysql_upgrade升级,前者耗时较长,且 ...