动态CSS,换肤技术

时间:2022年12月16日

/

来源:阿方

/

编辑:本站小编

收藏本文

下载本文

下面是小编帮大家整理的动态CSS,换肤技术,本文共8篇,欢迎阅读,希望大家能够喜欢。本文原稿由网友“阿方”提供。

篇1:动态CSS,换肤技术

常见的例子就是:一个站点上有多个页面样式提供浏览者选择,

动态CSS,换肤技术

同时,在选择了某样式后,再次打开该页面时,将仍然保持该样式。

自然会想到了Cookie技术

下面是HTML代码部分(另外再加需要的CSS文件就可以使用了):

换肤技术

请选择下面的下拉菜单测试换肤效果

篇2:谈谈CSS Sprites技术及其优化

CSS Sprites 技术对于广大的前端工程师来说应该是一点也不陌生,这个被国内开发者昵称为CSS精灵 CSS雪碧的家伙到底解决了什么问题,我们又怎样合理使用这个技术呢?下面让我们详细的聊聊。

在大家还在拨号上网的“远古时期”,由于网速的限制,页面开发者都喜欢把网页里面的图片字节数控制的非常小,往往在一个图片文件夹里散落着n多的小碎图。随着网络技术的发展,网速的提升,大家越来越重视页面的加载速度,页面效率问题,过去的那些小图便成为了前端开发者的眼中钉,因为每加载一张图片都会产生一次浏览器请求数,发起的请求数越多那么页面加载的速度也越慢。还有当页面加载时,图片一个个的零星显示,鼠标经过时候背景闪白等也都是我们不能忍受的。于是乎将页面中的背景图整合到一起,利用“background-image”,“background- repeat”,“background-position”的组合进行背景定位的技术被广泛使用与了页面构建中,这就是CSS Sprites。当然CSS Sprites技术也存在着维护不便,内存占用大等等的缺点。

好了,如果我只说这些,那么这篇文章就有点太水了。前面那些只是对CSS Sprites技术的一个普及。作为一个开发者我们应该对它有一个更全面的认识,挖掘深度内容,这样才能有利于我们效率开发,团队协作。

头疼的多人拼图游戏

使用CSS Sprites,就好像玩拼图游戏一样。一张白画布,那么多图怎么放到里面去才会完美?这是个让人纠结的事。而且在实际在工作场景中,我们面临着项目开发时间紧张,UI设计图要分期提供,多人协同开发一个项目等等问题。这些问题非常容易让我们在大项目中迷失,造成CSS拼图混乱,维护及其困难的情况。

定好规则,其实拼图也挺好玩的

先期的准备工作

应对一个项目后期维护成本大的问题,我们最好的解决方案就是在开始前制定一系列的规范来限制问题的产品。好的开始是成功的一半。对于CSS Sprites,在项目开始前,我们要充分认识一个产品,同UI设计师做好良好的沟通,对我们未来组成我们Sprites图的各个元素有个大体的概念,比如我们的背景拼图可能包括什么。

一个好的Sprite画布是必须的

网页设计里面,Grid系统是必不可少的,好的Grid能解决我们很多排版问题。Grid系统同样适用于CSS Sprites。我们需要创建好一个优秀的画板,剩下的工作就是将元素合理的置于画板中了。

这张是我准备的一张CSS Sprites画布,我们将在这个PSD里面组合项目中的图片。

这张画布是由20px*20px像素的格子组成。这个格子基本上由项目决定的,当我们同UI设计师沟通了解这个项目最多的为16px*16px 图标时。我们就可以采用这种Grid尺寸为画布了。

Sprites画布有了,接下来就是对图标进行分组了

对于信息的归纳总结、分类是一个有意思的事情。就拿图标来说,我们就可以根据图标功能,尺寸等等作为信息维度进行归纳,

其实无论怎么归纳,都是可以的,只是记得我们以一个方向作为标准就可以了。

下图是根据微博站外某组件完成的CSS Sprites

根据设计,我们了解在这个页面,需要将图片元素根据功能分为4个维度,即微博品牌展示元素、提交按钮、操作类小按钮、提示类ICON。于是我将画布 X轴坐标方向每5个格(其实完全可以10个格或者更多)划分为一个区域,每个这样一个区域的Y轴方向不再划分区域,这样做的目的是为了以后增加图标的扩展性。于是我们可以非常快速得到一个图标的坐标了。比如不可用的灰色的分享按钮 X坐标=5*20px=100px Y坐标=7*20px=140px; 那么我们就取得了这个图标的位置即background-position: -100px -140px。如果抽象成为公式的话,我们设置一个单元格的宽度为变量n。X坐标值Gx,Y坐标值Gy。那么画布中的元素css背景即为:background-position:-Gx*npx –Gy*npx 了。

现在图有了,怎么取图也是关键

因为图片尽可能的被整合到一张拼图,所以我们需要在页面使用图片的位置使用空标签定位的方式将拼图所需展现的部分展示到页面中。

.iconA { display:inline-block; height:16px; width:16px; background:url(icons.png) -20px -20px no-repeat }

项目出现二期需求了,需要增加图标?

需求总是不能控制,我们要尽可能的为未来增加图片做好打算。在刚才的例子的项目里后期产品需要增加图标,于是:

我们可以继续在对应的图区内增加对应的图标。但是这个例子同样暴露了一个缺陷,如果新增一个按钮区域大于5n(100px),我们的图区不足以承载。这时候我们可以同产品,设计师沟通协调,商议是否可以取消过大的按钮设计。如果需求一定,那我们只能沿着X轴方向继续扩展画布。不过,我们也需要注意无限的放大一张画布,同样会造成对页面效率的影响。

及时的制定好规范,记录好修改日志

可能在项目的初期,我们还来不及制定合图的具体规范,在项目中我们会遇到各种各样的问题。及时的总结,维护整张CSS拼图,在拼图的PSD或者PNG(使用Fireworks)做好注释,方便他人开发。拼合好的图片提交到svn时也写明log内容,这样便日后查询。

我们最终的目的

其实CSS Sprites经过了那么多年的演变,前端开发者不断的优化,都是为了提升页面效率,提升团队开发效率,减少开发维护成本而努力。配合最近非常流行的将 CSS动态语言化(如SASS LESS等),增加入变量, 继承, 运算, 函数等。CSS Sprites会变的更好玩,会减少更多的开发维护成本。甚至我们在“面向对象”的模块开发方式中,还可以使用一个类的的同一个backgroud- position:(x y)值,在不同的页面通过引用不同的图片(background属性)实现将一个页面内图片请求量进一步减少的目的。随着高级浏览器的普及我们还可以多使用CSS3属性,减少渐变背景图的使用,将纯色ICON制作成字体取代拼图等我们能更大程度上减少图片的使用量。这篇文章只是抛砖引玉。实际上还有很多关于CSS Sprites的方法,还有众多的拼图生成工具。

说了那么多,我们如果在日常的开发中,只要我们多注意总结,敢于创新,敢于制定规范,那么再小的事也能干的很漂亮,对于CSS Sprites的优化就是这么一个例子,你说不是么?

作者:青春的猴小野

篇3:JSP动态网页制作技术

JSP动态网页制作技术

JavaServer Pages (JSP) 是一种结合了跨平台与跨网站服务器机制,以 Java为主的技术来产生动态网页。 JSP与微软的ASP(Active Server Pages )相容,但它是使用类似HTML的标签以及Java代码片段而不是VBScript。当你所使用的网站服务器没有提供本地ASP支援,也就是Apache或Netscape服务器时,你可以考虑使用JSP。虽然你可以取得这些服务器的ASP附加配备程序,但价格相当昂贵,而目前Sun并没有对你所要的JSP组件收取费用(虽然Sun未来有可能会收费)。对於Solaris与Linux以及Windows,这些组件也都很容易取得。

请不要将JSP与服务器端的JavaScript混为一谈。网站服务器会自动将以JSP写成的Java代码片段转换成Java servlets。而许多先前必须以Perl手写程式或服务器特定的API(如ASP)控制的功能也都可透过JSP来自动化处理。

现在就让我们开始动手帮助你建立一个可执行JSP范例网站。

一、如何安装好你的机器来使用JSP

你将需要Java 2软件开发工具(JSDK),它原来的名称是Java开发工具(JDK)以及JavaServer网站开发工具(JSWDK),Tomcat,或是其他支援JSP的网络服务器。Sun免费提供JSDK与JSWDK来供Windows,Solaris,以及Linux平台使用。

如果你想要在你目前的网络服务器上使用JSP,但服务器本身并不支援JSP与Java servlets,你可以试试看Allaire的Jrun, 它的作用就像是针对Netscape企业版与FastTrack服务器、微软的网络资讯服务器(IIS)与个人网络服务器(PWS)、Apache、以及其他服务器的网络服务器附加设备。你也可以使用Apache网络服务器的Java版本,最新的JSWDK里有提供。

1、下载与安装你需要的组件

目前发表的1.2.2-001,JSDK可下载的版本是以可安装的压缩文档形式。下载的文件大约是20MB,可提供完整的Java发展环境,让你能建立利用标准API为核心的Java解决之道。然而,你的网络服务器需要应用到JSP的唯一一件事是Java编译器。要让网络服务器知道编译器的位置,将环境参数JAVA.HOME设到JSDK的安装目录。如果你是在Windows上安装并且接受预设目录,将这行代码set JAVA.HOME=C:\\1.2.2加到你的autoexec.bat文件并且重新开机。

在安装好JSDK之後,下载并且安装JSWD

K或beta版的Tomcat,以Java为主的Apache网络服务器。安装在哪里并不重要,重要的是你可以找到它。一般而言,它会放在上层目录,这种方式可以让你取代JSWDK或 JSDK的网络服务器,不需要移动其他的网络服务器。在你安装好这个文件之後,你就可以准备使用JSP了。

在你正确的安装JSWDK之後,执行startserver指令来启动网络服务器,预设通讯口为8080。要看你在启动服务器之後是否有正确的安装工具,你可以载入范例JSP文件中的任何一个(localhost:8080/examples/jsp/)。如果你能够成功的执行一个范例文件,你可以知道你已经正确的设定好软件了。如果你在启动服务器的控制台视窗看到错误讯息,那麽你需要解决这个问题。最常发生的问题是没有设定(或者不正确设定)环境参数JAVA.HOME。 要检查目前的环境设定,在DOS模式下键入set。

2、开始解释JSP语法 之前,先建立一个显示目前日期与时间的快速网页并且将它储存成sample.jsp:

First Page

Today is:

<%= new java.util.Date %>

.

将这个文件与你所有的HTML与JSP网页放在你JSWDK安装目录下的网页目录里. 你可以在localhost:8080/sample.jsp下载此页.当你第一次参观这个网页时,网站服务器会将JSP翻译成Java servlet代码,那你就会看到目前的日期与时间.

现在你已经下载,安装,并且架构好环境,你已经准备好要了解JSP语法与建立你自己的JSP为主的解决之道.

二、JSP语法的基本原理

安装之後,接下来我们要讨论JSP的语法.如果要偷懒,你可以下载语法卡,如果你不熟悉 Java的程序设计,你可能会想要参考Sun的使用手册;然而,网站建立者不应该做太多的Java使用程序,除了几个函数式之外,出现在你JSP网页上的Java程序码应该将它减到最少。

记住这点之後,现在让我们先来看看JSP的编译器指引与指令元件,之後我们将解释JavaBeans与内部物件. JSP编译器指引与指令元件有五种型态.JSP 1.0之後,大部分的JSP是包含在以<% 作为开始%>

作为结束的单一标签里,新的 JSP 1.1规格已经发表了,它同时也与XML相容。

1、JSP的编译器指引与指令元件

编译器指引 <%@ 编译器指引 %>

预定义 <%! 预定义 %>

运算式 <%= 运算式 %>

程序码片段/小型指令 <% 程序码片段 %>

注解 <%-- 注解 --%>

2、编译器指引

JSP的编译器指引是针对JSP引擎。它们并不会直接产生任何看得见的输出;相反的,它们是在告诉引擎如何处理其他的'JSP网页。它们永远包含在 <%@ ?%>标签里。两个主要的指引是 page与include。我们不会讨论taglib编译器指引但它可以在JSP1.1里用来建立自订标签。

你几乎可以在你所有的JSP网页最上面找到page编译器指引。虽然这不是必须的,但它可以让你指定到那里可以找到支持的Java类别: <%@ page import=“java.util.Date” %>, 当发生Java问题的事件时应该将信息传送到那里: <%@ page errorPage=“errorPage.jsp” %>, 以及你是否要为使用者管理通话期的通信,可能存取多个网页(稍後在JavaBeans里会有更多通话期的讨论): <%@ page session=“true” %>。

include编译器指引让你将你的内容分成几个可管理的元件,就像那些有表头或注脚的网页。所包含的网页可以是固定格式的HTML网页或者是JSP内容的网页:

<%@ include file=“filename.jsp” %>。

3、JSP预定义让你定义网页层的参数,来储存信息或定义支持的函数式,让JSP网页的其余部分能够使用。如果你发现自己有太多的程序码,你最好将它们放在不同的Java类别里。你可以在 <%! ?%>标签里找到预定义。记住要在参数预定义的後面加上分号,就跟任何有效的Java叙述的形式一样: <%! int i=0; %>。

4、JSP里有运算式,评估运算式的结果可以转换成字串并且直接使用在输出网页上。JSP运算是属於 <%= ?%>标签里,并不包含分号,加引号字串的无用部分:

<%= i %>

<%= “Hello” %>。

5、JSP程序码片段或小型指令文件是包含在<% ?%>标签里。当网络服务器接受这段请求时,这段Java程序码会执行。小型指令文件可以是原始的HTML或XML,其内部的程序码片段可以让你建立有条件的执行程序码,或者只是一些使用另一块程序码的东西。举例来说,下列的程序码结合了运算式与小型指令文件,在H1,H2,H3,以及H4标签里显示字串“Hello”。小型指令文件不限於一行的原始程序码 :

<% for (int i=1; i<=4; i++) { %>

>Hello>

<% } %>。

注解.

最後一个主要JSP元件是嵌入式注解。虽然你可以在你的文件里包含HTML注解,如果使用者检视网页的原始码,他们也会看到这些注解。如果你不要让使用者看到你的注解,你可以将它放在<%-- ?--%>标签里:

<%-- 针对服务器端的注解 --%>。

三、JSP与JavaBean

虽然你可以在小型指令档里放入一大块的代码,但是大多数的Java代码是属於可以重复使用的元件,称为JavaBean。JavaBean就跟ActiveX控制项一样:它们提供已知的功能,并且是为了可随时重复使用的目的而设计的。

JavaBean的¤值在於它可以经由一组特性来使用,而这些特性则提供对JavaBean设定的存取。以人来作范例,此人就是JavaBean,而他的姓名,社会福利安全号码,以及住址可以是特性。对於JSP网站,基本上你是将'JavaBean'动态的连接到你的网站。

假设JavaBean是在建立网站之前建好的,你要做的第一件事是告诉JSP网页它所需要使用JavaBean,这工作可以用标签来完成:

.

标签需要你以id 属性来辨识usebean.在这里,你提供一个名称让JSP网页来辨识usebean,除了id 属性之外,你也必须告诉网页要到哪里去找这个usebean,或者是它的Java类别名称。类别属性提供如何在各式方法之中找到它,最後一个需要的元件是scope 属性。有了范围属性的帮助,你可以告诉usebean,要它为单一网页(预设)[scope=“page”];为一个被请求的网页[scope=“request”];为通话期[scope=“session”]; 或为整个应用程式[scope=“application”]来维护它自己的资源。对於通话期范围,你可以很容易的维护JSP网页里的项目,例如购物车: 一旦你宣告了JavaBean之後,你就可以存取它的特性来订购它。要取得一特性的值,使用标签。有了标签,你可以指定要使用的usebean名称(从useBean的id栏位),以及你要取得值的特性。接著,真正的值就会放在输出里:

.

要更改

JavaBean的特性,你需要使用标签.对这个标签,你也需要辨认usebean以及要修正的特性,除此之外,你还需要提供新值。如果命名正确,这些可以直接经由规定的格式取得:

;

要从一参数取得,你必须直接命名此特性以及参数:

;

或是直接以名称与值来设定:

or />.

有关JavaBean的最後一点:要让网络服务器可以找到JavaBean,你 要将它们的类别文件放在特别位置。对JSWDK而言,最简单的地方是在安装目录里的类别目录,例如 \\jswdk-1.0.1\\classes.

四、JSP的内部物件

最後一个与JSP语法有关的元件叫做内部物件.在JSP小型指令档内,你可以存取这些内部物件来与执行JSP网页的servlet环境相互作用。许多对内部物件的存取应该要简化。然而,这些是范例,它们的存取都是可接受的,要完整的利用内部物件设定则 要对最新的Java Servlet API有所了解。

有关内部物件说明:

request 用户端请求,此请求会包含来自GET/POST请求的参数

response 网页传回用户端的回应

pageContext 网页的属性是在这里管理

session 与请求有关的通话期

application servlet正在执行的内容

out 用来传送回应的输出资料流

config servlet的架构物件

page JSP网页本身

exception 针对错误网页,未捕捉的例外

那麽,这些是做什麽的,而你应该如何使用它们呢?基本上,在你的小型指令档里,你可以使用它们来存取执行JSP代码的servlet。 为了避免谈论到太多Servlet API 的细节,让我们来检验一些你可以利用它们来做的事: 不必使用运算式,你可以直接存取内部out物件来列印一些东西到response:

<% out.println(“Hello”); %>.

不必直接传送参数到JavaBean,你可以藉由请求物件来取得参数的值:

<% String name=request.getParameter(“name”); out.println(name); %>。

当你以JSP写了许多的应用程式之後,如果你建立了JavaBeans或者发现你自己将太多的Java原始码放入你的JSP档案,你需要建立支援的Java类别,这样可以鼓励重复使用并且降低JSP网页转换时所需要的时间。当你需要建立Java类别时,你必须: 将JDSWK的安装目录\\bin目录加到你的PATH。在你的autoexec.bat档案的PATH行的最後,加入C:\\1.2.2\\bin; 。

以下面的指令将JAR档案复制到\\jre\\lib\\ext目录:

copy c:\\jswdk-1.0.1\\lib\\servlet.jar c:\\jdk1.2.2\\jre\\lib\\ext.

五、建立一JSP网站

现在到了将所有的JSP语法放在一起使用的时候了。我们将会建立一个具有输入格式的网站,让使用者来输入股票代号并且获得目前股票的价格(大约延迟20分钟)。如果有错误,则错误网页会显示。

quote.jsp

首先,以这段代码建立quote.jsp并且将它储存在JSWDK安装目录的网页目录里。网页的大部分内容是标准的HTML格式,而JSP代码分散各处。第6行是网页编辑器指引,指示将任何错误传送到errorPage.jsp档案。第13行到15行是小型指示码,基本上是说只有当“symbol”参数存在时才显示表格。这个if区段包含了第32行到34行的代码。第17行定义要使用的 JavaBean,而第18行从参数载入它的符号特性。第27行到29行指示显示usebean的特性。除了if区段之外,并没有其他的Java代码。

errorPage.jsp

接著,将下列的JSP原始码储存到网页目录下的文件errorPage.jsp.这是一个错误网页的暗示是在第一行,此行将网页编译器指引isErrorPage属性设为真。虽然前一页说明了错误网页在哪里,这页是说它是一个错误网页。JSP文件里其他特定的JSP代码是对内部例外物件的存取。此页只是显示它的值而已:

<%@ page isErrorPage=“true” %>

Error Page

Our Error Page

We got ourselves an exception:

<%= exception %>

Restart

.

Quotes.java

Quotes JavaBean使用雅虎的资源来取得股票。其原始码 要储存於 JSWDK安装目录下classes\\com\\jguru目录里的quotes.java档案。从那里你可以使用JSDK的编译器来编译它。 一旦你建好两个JSP文件,建立了JavaBean原始文件并且编译好之後,你就可以由localhost:8080/quote.jsp载入quote.jsp文件来查看结果,假设你没有更改 JSWDK安装,使用不同的通讯口>此网页可以再加强,但它所呈现的功能,是JSP功能的良好示范。

全文结束

邮编 450008

通讯地址:河南省郑州市郑花路29#

河南金融管理干部学院计算机教研室―陈学军

篇4:测量机器人动态测量技术及应用研究

测量机器人动态测量技术及应用研究

研究测量机器人动态测量技术.在基于测量机器人软件内核开发的`基础上,提取测量机器人毫秒级高精度的内部时间,使时间的分辨率由秒量级提高到毫秒量级;通过实验测试,给出单次测量时间和测量时滞的定量结果,使测量时刻的精度由1秒提高到几十毫秒;对影响动态测量精度的相关因素进行实验分析,为优化测量方案和提高动态测量精度提供重要参考依据.实践表明,基于测量机器人开发的动态测量系统,在50 m尺度上,对2 cm/s的低动态目标,可以实现±2 mm精度的无接触精密动态测量.

作 者:骆亚波 郑勇 夏治国 吴少波 朱文白 LUO Ya-bo ZHENG Yong XIA Zhi-guo WU Shao-bo ZHU Wen-bai  作者单位:骆亚波,郑勇,夏治国,LUO Ya-bo,ZHENG Yong,XIA Zhi-guo(信息工程大学,测绘学院,河南,郑州,450052)

吴少波,WU Shao-bo(清华大学,力学系,北京,100084)

朱文白,ZHU Wen-bai(国家天文台,北京,100012)

刊 名:测绘通报  ISTIC PKU英文刊名:BULLETIN OF SURVEYING AND MAPPING 年,卷(期): “”(9) 分类号:P2 关键词:全站仪   ATR   合作目标   测量时滞   FAST  

篇5:单片机系统的动态加密技术

1概述

随着单片机技术的发展和广泛应用,许多使用单片机的高新技术产品诸如智能化仪器、仪表、小型工业控制系统等都面临着一个令人头痛的问题,那就是新产品刚一推出就被仿制和剽窃。这种现象会使产品开发商蒙受很大损失,同时也极大地挫伤了开发商的积极性。创新开发是一个公司竞争力的关键,如何保护好自己的劳动成果,除用法律手段外,在产品面市前作好加密是一个必不可少的环节。

单片机系统一般都采用MCU+EPROM模式。通常EPROM都是透明的,而采用的MCU一般有Intel公司的MCS51、52系列,Zilog公司的Z80、Z84系列、Motorola公司的MC68HC系列以及Microchip公司的PIC16C系列等。虽然有许多的MCU都带有加密位,但现在已大多能破解。因此,单靠MCU本身加密位来进行加密已极不可靠的。

2常用加密技术分析

常用的单片机加密技术无非是硬件加密和软件加密两种。软件加密不能防止别人复制,只能增加别人解剖分析的难度,但对高手而言,这不足为虑。所以,这里讨论的加密主要是硬件加密。总结起来,主要是以下三大类。

2.1总线乱置法

总线乱置法通常是将MCU和EPROM之间的数据线和地址线的顺序乱置。总线乱置法通常包括下面几种:

(1)将数据或地址总线的某些线位交换或求反;

(2)将数据或地址总线中的某些线进行异或。例如,D5'=D5,D6'=D5+6等;

(3)把(1)(2)结合起来以构成较复杂的电路;

(4)采用EPROM时,把地址总线(或数据总线)与系统程序的存储器地址(或数据)的对应关系按密钥交换。例如,用一片2764芯片存储密钥,把地址的高8位重新按密钥编码,也就是说,把原程序的页号顺序打乱;

(5)采用GAL器件,利用GAL的加密片来对硬件电路进行加密。

2.2RAM替代法

用电池对RAM进行掉电数据保护。即先将一系列数据写入RAM并接上电池,然后将其余的芯片插上。这样,当单片微机系统运行后,CPU首先从RAM读出数据,这些数据可以是CPU执行程序的条件判别依据,也可以是CPU将要执行的程序。如果数据正确,整个系统正常运行。反之,系统不能运行。

2.3利用MCU本身的加密位进行加密

现在很多的MCU都带有加密位,其中最成功的加密方法是总线烧毁法,此法在AT89C51中运行用得最成功。即把单片机数据总线的特定I/O永久性地破坏,解密者即使擦除了加密位,也无法读出片内程序的正确代码。此外还有破坏EA引脚的`方法。

一般来说,上述的加密方法各有优点,但都存在致命的缺点:第一种方法有两个主要缺点:一是密钥放在哪里才能不被破译;二是用仿真器很容易就能把源程序截取出来。第二种方法同样可以用仿真器把数据区调出来,另外还可以把RAM接上电池,取下来放在仿真器上读出来。第三种方法用来加密小程序是成功的,但由于总线已被破坏,因而不能再使用总线来扩展接口芯片和存储器。同时,片内存储器也不再具有重复编程特性。

3常用解密方法分析

加密和解密长期以来就是一对矛盾。要做好加密,必须先了解现在的解密水平及手段。目前的解密手段大致可分为下面四种。

3.1恢复加密位法

该方法能破解常规用E2COMS工艺的存储加密位芯片。它包括两个系列:

第一是MCU系列,例如MCS51系列(包括89C、97C、W78E/77E系列等)、Z84E系列、PIC16C/12C系列、MC68HC系列等。

第二是PLD,如CPLD的GAL,PALCE的16V8、20V8、22V10,Altera的EPM7032、EMP7064、EMP7128,Lattice的LSP1016、LSP1024和Atmel的ATV750/2500等。

3.2逻辑分析法

该方法主要采用示波器、逻辑分析仪

和MDU解密仪等分析工具分配一些逻辑较简单的可编程器件的逻辑功能。

3.3仿真器软件跟踪分析法

此方法适用于破解一些未带加密功能的单片机系统(如8031,Z80等系统),而对于有加密功能的单片机系统,则可先破解其单片机的源程序,然后进行仿真分析。

3.4芯片揭盖分析法

现在市场上十万门以下的芯片多功能通过揭盖来进行逆向分析,但此破解法费用甚高。此法适用于破解专门的ASIC芯片。

综上所述,一般芯片及常规加密手段很难实现有效加密。严格来说,要做到绝对的加密是不可能的。选好适当的芯片,采用合适的加密技术,使仿制者面对需付高昂的解密费而却步,那就意味着加密工作的成功。

4动态加密技术原理

动态加密技术的主要思路是:在程序看到的是虚地址,而虚地址对应的存储器的实地址由CPU程序运行时通过FPGA赋予。其原理如图1所示。

举例说明,若调用子程序CALLFunction时,对应于同一个子程序调用,第一次调用的是真正的Function,绝对地址可能在1000H。而在第二次调用Function时,实地址可能是H,功能可能根本与Function不相同,这样,只要在调用前把实地址通过软件置进去就可以了。因此可以通过连续表面调用同一个子程序Function,而实际则是分别调用几个不同的子程序来实现加密。至于虚地址映射到何处的实地址,可由编程者自己安排,故只需在调用前输出实地址的对应关系即可。这种软件与硬件相结合、虚地址与实地址相结合的加密方法使破解者即使获得源程序也极难分析出对应关系。

但这种动态加密技术也有漏动,如很难对付仿真器单步跟踪分析,因此,须做进一步个性。改进的方法之一是在FPGA内设计一个计数器,并由CPU定时清零,否则一旦超过时限,FPGA将停止一切操作而使CPU无法运行,就更不用说仿真了。改进方法之二是在FPGA内做一密,并由CPU运行足够长的时间后去访问FPGA,以读取密码并比较,若出错则由CPU破坏主内存RAM的内容,从而导致所有结果出错。用这种方法足可以对付逻辑分析仪的跟踪分析。

对于数据加密,可采用与密钥逻辑异或的方法。对于这种方法密钥以及动态加密技术的逻辑函数都必须放在一个较难破译的芯片上。鉴于对芯片解密技术的了解,笔者推荐使用Actel公司生产的42MX系列的FPGA来进行一次性编程,该芯片不可读出码点文件,市场上无法破解。同时,其资源也极为丰富,设计工具完整,且用VHDL语言极易实现各种功能。

5结束语

随着单片机系统越来越广泛的,其安全保密问题也越来越受到重视。密码学为其提供了正确的理论基础。同时,性能优良的硬件是实现其安全保密的物质基础。二者缺一不可。加密解密长期以来就是一对矛盾,解密技术随着科学技术的发展不断创新。因此,只有对解密技术有了深刻的了解,才能做好加密工作,从在则确保产品的安全。

篇6:单片机系统的动态加密技术

1 概述

随着单片机技术的发展和广泛应用,许多使用单片机的高新技术产品诸如智能化仪器、仪表、小型工业控制系统等都面临着一个令人头痛的问题,那就是新产品刚一推出就被仿制和剽窃。这种现象会使产品开发商蒙受很大损失,同时也极大地挫伤了开发商的积极性。创新开发是一个公司竞争力的关键,如何保护好自己的劳动成果,除用法律手段外,在产品面市前作好加密是一个必不可少的环节。

单片机系统一般都采用MCU+EPROM模式。通常EPROM都是透明的,而采用的MCU一般有Intel公司的MCS51、52系列,Zilog公司的Z80、Z84系列、Motorola公司的MC68HC系列以及Microchip公司的PIC16C系列等。虽然有许多的MCU都带有加密位,但现在已大多能破解。因此,单靠MCU本身加密位来进行加密已极不可靠的。

2 常用加密技术分析

常用的单片机加密技术无非是硬件加密和软件加密两种。软件加密不能防止别人复制,只能增加别人解剖分析的难度,但对高手而言,这不足为虑。所以,这里讨论的加密主要是硬件加密。总结起来,主要是以下三大类。

2.1 总线乱置法

总线乱置法通常是将MCU和EPROM之间的数据线和地址线的顺序乱置。总线乱置法通常包括下面几种:

(1)将数据或地址总线的某些线位交换或求反;

(2)将数据或地址总线中的某些线进行异或。例如,D5'=D5,D6'=D5+6等;

(3)把(1)(2)结合起来以构成较复杂的电路;

(4)采用EPROM时,把地址总线(或数据总线)与系统程序的存储器地址(或数据)的对应关系按密钥交换。例如,用一片2764芯片存储密钥,把地址的高8位重新按密钥编码,也就是说,把原程序的页号顺序打乱;

(5)采用GAL器件,利用GAL的加密片来对硬件电路进行加密。

2.2 RAM替代法

用电池对RAM进行掉电数据保护。即先将一系列数据写入RAM并接上电池,然后将其余的芯片插上。这样,当单片微机系统运行后,CPU首先从RAM读出数据,这些数据可以是CPU执行程序的条件判别依据,也可以是CPU将要执行的程序。如果数据正确,整个系统正常运行。反之,系统不能运行。

2.3 利用MCU本身的加密位进行加

[1] [2] [3]

篇7:动态入侵检测技术IDS相关问题

是网上不安全的主要因素之一,已经为我们造成了巨大损失, 企业用户如何才能有效地防范网络 ?本文介绍了动态的入侵检测技术IDS .入侵检测技术是当今一种非常重要的动态安全技术,如果与 传统 的 静态防火墙技术共同使用,将可以大大提高系统的安全防护水平。

1、入侵检测的内容。关于入侵检测的 定义 已有数种,其中ICSA入侵检测系统论坛的定义即:通过从计算机网络或计算机系统中的若干关键点收集信息并对其进行分析,从中发现网络或系统中是否有违反安全策略的行为和遭到袭击的迹象(的一种安全技术)。入侵检测技术是动态安全技术的最核心技术之一。传统的操作系统加固技术和防火墙隔离技术等都是静态安全防御技术,对网络环境下日新月异的攻击手段缺乏主动的反应。目前,利用最新的可适应网络安全技术和P2DR(Policy Protection Detection Response)安全模型,已经可以深入地研究入侵事件、入侵手段本身及被入侵目标的漏洞等。入侵检测技术通过对入侵行为的过程与特征的研究,使安全系统对入侵事件和入侵过程能做出实时响应,从理论的分析方式上可分为两种相异的分析技术:(1)异常发现技术,

(2)模式发现技术。目前,国际顶尖的入侵检测系统IDS主要以模式发现技术为主,并结合异常发现技术。IDS一般从实现方式上分为两种:基于主机的IDS和基于网络的IDS。一个完备的入侵检测系统IDS一定是基于主机和基于网络两种方式兼备的分布式系统。另外,能够识别的入侵手段的数量多少,最新入侵手段的更新是否及时也是评价入侵检测系统的关键指标。从具体工作方式上看,绝大多数入侵检测系统都采取两种不同的方式来进行入侵检测:基于网络和基于主机的。不管使用哪一种工作方式,都用不同的方式使用了上述两种分析技术,都需要查找攻击签名(Attack Signature)。所谓攻击签名,就是用一种特定的方式来表示已知的攻击方式。

2.基于网络的IDS。基于网络的IDS使用原始的网络分组数据包作为进行攻击分析的数据源,一般利用一个网络适配器来实时监视和分析所有通过网络进行传输的通信。一旦检测到攻击,IDS应答模块通过通知、报警以及中断连接等方式来对攻击作出反应。基于网络的入侵检测系统的主要优点有:(1)成本低。(2)攻击者转移证据很困难。(3)实时检测和应答一旦发生恶意访问或攻击,基于网络的IDS检测可以随时发现它们,因此能够更快地作出反应。从而将入侵活动对系统的破坏减到最低。(4)能够检测未成功的攻击企图。(5)操作系统独立。基于网络的IDS并不依赖主机的操作系统作为检测资源。而基于主机的系统需要特定的操作系统才能发挥作用。

篇8:中国农业产出技术效率动态研究

中国农业产出技术效率动态研究

本文用非参数的`DEA方法,对1980年至1995年期间我国农业产出的技术效率进行了测量.分析其变化趋势和特征及其产生的原因.指出稳定农业科技推广队伍并充分发挥其作用,加速广大中西部地区的发展,壮大中西部地区农业科技力量的成长和提高该地区农民的科技文化素质,才能有效阻止我国农业宏观技术效率的下降.

作 者:孟令杰 MENG Lingjie  作者单位:安徽农业大学农经系 刊 名:农业技术经济  PKU CSSCI英文刊名:JOURNAL OF AGROTECHNICAL ECONOMICS 年,卷(期):2000 “”(5) 分类号:F3 关键词: 

中文排版CSS的心得

动态邀请函

实时动态GPS测量技术在水深测量中的应用研究

述职报告动态

动态语境与话语理解

下载动态CSS,换肤技术(共8篇)
动态CSS,换肤技术.doc
将本文的Word文档下载到电脑,方便收藏和打印
推荐度:
点击下载文档
点击下载本文文档