由于业务中最近需要使用到加密狗,增加对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. Runtime的使用

    一.RunTime简介 RunTime简称运行时.OC就是运行时机制,也就是在运行时候的一些机制,其中最主要的是消息机制. 对于C语言,函数的调用在编译的时候会决定调用哪个函数. 对于OC的函数,属于 ...

  2. .NET Core快速入门教程 4、使用VS Code开发.NET Core控制台应用程序

    一.前言 为什么选择VS Code?VS Code 是一款跨平台的代码编辑器,想想他的哥哥VS,并是微软出品的宇宙第一IDE,那作为VS的弟弟,VS Code 也不会差,毕竟微软出品.反正ken是这么 ...

  3. markdown语法小结

    引用数学公式1 \[ \begin{equation} \pi^2=x^2+y \label{eq_lab1} \end{equation} \] Here we cite this equation ...

  4. Hibernate学习笔记四 查询

    HQL语法 1.基本语法 String hql = " from com.yyb.domain.Customer ";//完整写法 String hql2 = " fro ...

  5. C语言博客作业——函数

    一.PTA实验作业 题目1:6-6 使用函数输出水仙花数 1.本题PTA提交列表 2. 设计思路 int narcissistic( int number ) //函数定义 1.定义整数型变量a.i分 ...

  6. 完美解决某法院HP EVA8400删除VDISK问题

    [故障描述] 某地法院一台HP EVA8400存储,2组扩展柜,物理磁盘由12个1T FATA磁盘(AG691A 454414-001)和10个300G 15K FC磁盘(AG690A 454411- ...

  7. Django之ORM字段和参数

    字段 常用字段 AutoField                                                                                    ...

  8. Python扩展模块——调用WindowsAPI(pywin32的简单使用)

    这块使用的比较少,只用到了模拟键盘按键, 调用鼠标比较费事,是通过像素坐标实现的,如果没有特殊需求或万不得已不建议使用 import win32con import win32api win32api ...

  9. JQ 标签相关知识

    1.判断 checkbox 和 radio 是否选中 if($("标签选择器").is(":checked")) 2.改变 checkbox 选中状态 .pro ...

  10. Angular 学习笔记 ( CDK - Layout )

    简单说就是 js 的 media query. 1. BreakpointObserver  const layoutChanges = this.breakpointObserver.observe ...