精华内容
下载资源
问答
  • 静态代理 角色分析 抽象角色 接口或者抽象类 真实角色 被代理的角色 代理角色 代理真实角色,一般会做一些附属操作 客户角色 使用代理角色进行一些操作 AbstractObject - RealObject - Proxy Client 代码实现...

    静态代理

    角色分析

    1. 抽象角色 接口或者抽象类
    2. 真实角色 被代理的角色
    3. 代理角色 代理真实角色,一般会做一些附属操作
    4. 客户角色 使用代理角色进行一些操作
    AbstractObject
        - RealObject
        - Proxy
    
    Client
    
    

    代码实现

    package com.pengshiyu.proxy;
    
    // 租借接口
    public interface IRent {
        void rent();
    }
    
    
    package com.pengshiyu.proxy;
    
    public class Host implements IRent{
        @Override
        public void rent() {
            System.out.println("房东租房");
        }
    }
    
    
    package com.pengshiyu.proxy;
    
    // 中介
    public class Proxy implements IRent{
        private Host host;
    
        public Proxy(Host host){
            this.host = host;
        }
    
        @Override
        public void rent() {
            this.beforeRent();
            this.host.rent();
            this.afterRent();
        }
    
        private void beforeRent(){
            System.out.println("中介带看房");
        }
    
        private void afterRent(){
            System.out.println("签订合同");
        }
    }
    
    
    package com.pengshiyu.proxy;
    
    // 客户
    public class Client {
        public static void main(String[] args) {
            Host host = new Host();
            Proxy proxy = new Proxy(host);
            proxy.rent();
        }
    }
    
    

    使用静态代理

    好处:

    1. 使得真实角色处理业务更加纯粹,不再关注公共的问题
    2. 公共业务由代理类完成,实现业务的分工
    3. 公共业务发生扩展时变得更加集中和方便

    缺点

    1. 类多了,代理类,工作量变大,开发效率降低

    动态代理

    动态代理和静态代理的角色是一样的

    动态代理的代理类是动态生成的

    分类:

    1. 基于接口的动态代理 jdk 动态代理
    2. 基于类的动态代理 cglib、javasist

    一个动态代理,一般代理某一类业务,可以代理多个类

    package com.pengshiyu.proxy;
    
    public interface IVehicle {
        void run();
    }
    
    
    package com.pengshiyu.proxy;
    
    
    public class Car implements IVehicle {
        public void run() {
            System.out.println("Car会跑");
        }
    }
    
    
    package com.pengshiyu.proxy;
    
    import java.lang.reflect.InvocationHandler;
    import java.lang.reflect.Method;
    
    public class VehicleInvocationHandler implements InvocationHandler {
    
        private Object target;
    
        public VehicleInvocationHandler(Object target){
            this.target = target;
        }
    
        @Override
        public Object invoke(Object proxy, Method method, Object[] args) throws Throwable {
            System.out.println("---------before-------");
            Object result = method.invoke(target, args);
            System.out.println("---------after-------");
            return result;
        }
    
    }
    
    
    package com.pengshiyu.proxy;
    
    import java.lang.reflect.Proxy;
    
    // 客户
    public class Client {
        public static void main(String[] args) {
            IVehicle car = new Car();
    
            IVehicle carProxy = (IVehicle)Proxy.newProxyInstance(
                    car.getClass().getClassLoader(),
                    car.getClass().getInterfaces(),
                    new VehicleInvocationHandler(car)
            );
    
            carProxy.run();
    
        }
    }
    
    
    展开全文
  • HOOK是一种通过更改程序的数据结构或代码结构从而改变程序运行路线的一种方法。其中包括用户模式的HOOK内核模式的HOOK。本次主要讲解常用HOOK框架的安装技术及使用,包含各种框架的HOOK使用以及实例操作。从分析...
    点击蓝字默默关注

    从Java层的hook到native的hook展示、hook技巧灵活运用,在整个逆向过程中必不可缺少。

    HOOK是一种通过更改程序的数据结构或代码结构从而改变程序运行路线的一种方法。其中包括用户模式的HOOK和内核模式的HOOK。本次主要讲解常用HOOK框架的安装技术及使用,包含各种框架的HOOK使用以及实例操作。从分析程序的APP代码找到关键的HOOK点到自己编写各种工具的HOOK代码。

    1静态代理

    代理模式分为静态代理和动态代理 ,静态代理是编译阶段就生成代理类来完成对代理对象的一系列操作。动态代理是指在运行时动态生成代理类。即代理类的字节码将在运行时生成并载入当前代理的 ClassLoader。

    静态代理就是在程序运行前就已经确定代理类与代理对象的代理模式,它通常用于对原有业务逻辑的扩充。比如某个接口类,并调用其中的某些方法,出于对记录日志、打印方法执行时间等的某种原因,又无法将这些逻辑写入接口类的方法里。因此需要创建一个代理类实现和二方方法相同的方法,通过让代理类持有真实对象的方式,在原代码中调用代理类方法,以达到添加需要业务逻辑的目的。

    2如何实现静态代理

    1.首先创建代理类,在代理类里面实现接口,再创建声明类,然后实例化得到对象。

    (1)声明一个接口类,如下图所示。

    6fdd1b83bbd905ef2a0f24c7d79cf54b.png

    (2)定义一个租房子的方法,如下图所示。

    13d3cadbd53de48b26f925e7b8d9bddf.png

    2.具体实现需要再定义一个类,这个类实现接口类里面的方法,此时就需要通过代理来完善或者达到需求,修改这个方法或者扩展这个方法,但是又不能变动原有的方法,步骤如下:

    (1)创建代理类并且实现接口,如下图所示。

    e145267418565cec531817efa31e2982.png

    (2)声明一个对象后进行实例得到对象,如下图所示。

    4758783c99eb8dbb1b19dbfb45b03f32.png

    (3)在代理类里面定义两个方法分别是代理之前和代理之后,如下图所示。

    2a583a3b0e38a9fd24a74bba850c0185.png

    (4)调用里面的方法,做出相应的修改,比如参数、返回值等,这也就是代理的作用。

    在MainActivity里面实例化代理的类,此时为proxy类,如下图所示。

    b2db9710c9efd822d82ba2aa32a8cfd0.png

    然后运行打印一下log日志信息,效果如下图所示。代理的作用一目了然,清晰可见它的变化。

    b1c00ab2a89c8dc21eb4182dc25d1a3d.png

    3小结

    主要分享静态代理的概念,以及如何使用静态代理。实战操作静态代理的使用以及代码的编写。

    ▼往期回顾▼实战:Crakeme01实战:AliCrackme实战:AntiDebug

    51f9d16da6b5608427ee7dd10ba42914.png

    展开全文
  • 一,静态IP与动态lP差异: ...2、动态lP和静态IP对网络速度的反应,ISP对每个使用者所供应的网络速度,并非从网络ip限制的,反而是从使用者联接到ISP的物理路线上开展限制的。 3、ISP调整的静态IP地址IS

    一,静态IP与动态lP差异

    1、动态lP要在连网时自行联接网络ip以供使用者正常的连网,而静态IP是ISP在电脑装机时调整给使用者的网络ip,能够随时联接连网,不用联接网络ip。

    静态IP是能够随时连网的lP段,该lP在ISP电脑装机的时候会划定个网络ip给你,让电脑在连网时不会再自行联接IP地址,规避了连接网络上的苦恼。
    在这里插入图片描述

    2、动态lP和静态IP对网络速度的反应,ISP对每个使用者所供应的网络速度,并非从网络ip限制的,反而是从使用者联接到ISP的物理路线上开展限制的。

    3、ISP调整的静态IP地址ISP赠予网络ip的具体情况是难以存在的。明确的应该说是ISP将网络ip租用给使用者使用。由于在当前IPv4地址早已调整结束,比较严重紧缺的具体情况下。ISP是难以随意将个网络ip赠给使用者的。

    二、静态IP与动态lP使用

    1、动态lP连网,又叫做DHCP连网。自行联接lP连网。动态lP这种上网方式,在未使用路由器的具体情况下,只要把这根宽带网线连接到电脑上,电脑上的网络ip设置为自行获得,电脑就可以实现连网了。

    2、静态IP连网,又叫做固定网络ip连网。这种上网方式,宽带运营商会供应一根个网络ip、子网掩码、网关和DNS服务器地址给使用者。在未使用路由器的具体情况下,只要把这根入户网线连接到电脑上,并且手动设置电脑上的网络ip,这样电脑才能连网。

    展开全文
  • 随着互联网、大数据等新兴技术的飞速普及应用,...目前,市面上的动态数据脱敏类产品良莠不齐,不同产品的技术路线和演进方式也存在差异。其中主流的技术路线有“结果集解析”和“语句改写”两种:下文将针对动态脱...

    55f51f08d77a5153e7297bdb33ed35c7.png

    随着互联网、大数据等新兴技术的飞速普及应用,数据集中存储已成为趋势,越来越多的应用采用连接数据中心或者数据共享层的方式来开展业务,这使得采用“先脱敏-后分发”方式的静态数据脱敏产品往往无法满足用户“兼顾实时性和安全性”的需求,动态数据脱敏应运而生。

    04be355dde1227d6a608fb6fdbdcaa93.png

    目前,市面上的动态数据脱敏类产品良莠不齐,不同产品的技术路线和演进方式也存在差异。其中主流的技术路线有“结果集解析”和“语句改写”两种:

    6c30b4ec2a5a34805b2b568e818880b4.png

    下文将针对动态脱敏产品最核心的能力——脱敏性能、复杂语句处理能力和脱敏规则覆盖度,从三个维度分别对两种技术路线进行分析比较:

    1、脱敏性能

    基于结果集脱敏,运算点在产品侧,需要动态脱敏设备收到数据库返回包并解析结果集后,再逐行完成解析、匹配规则与脱敏,因此对性能的损耗往往高达50%甚至几倍之多。而基于语句改写脱敏,是将运算逻辑交给数据库系统自身,所得结果集即为运算后的脱敏结果,并通过动态脱敏设备直接返回查询侧,一般可降低10%~40%的性能损耗。

    2、复杂语句处理能力

    在运维场景中,往往存在大量的嵌套查询、复杂语句和同名字段等情况。基于结果集脱敏需要先将结果集和所查询的列名一一对应,才能进行脱敏规则匹配及运算,因此存在匹配不准确或别名、嵌套无法识别的可能性。而基于语句改写的动态脱敏产品则不存在此类问题。

    3、脱敏规则覆盖度

    例如,现需要对身份证personid字段配置脱敏规则:

    基于结果集脱敏,首先要判断结果集中是否存在如‘110103199012038372’的身份证特征,如发现此类数据,则对其执行脱敏规则;但是,若通过构造如下语句:

    select substr(personid,1,6),substr(personid,7,6),substr(personid,13,6) from tableA;

    则返回的结果集是110103,199012,038372——单从每个字段看并没有身份证特征,可能导致判断失误不进行脱敏处理;但在查询人看来,这就是一串身份证信息,存在敏感数据泄露风险。而基于语句改写的动态脱敏产品则不存在此类问题。

    1830f3c957f8795a393c4613a847641d.png

    安华金和动态数据脱敏系统(DMS-D)基于“语句改写”技术路线,是一款高性能、高扩展性的动态数据屏蔽和脱敏产品——在数据库通讯协议层面,通过SQL代理技术,实现了完全透明的、实时的敏感数据掩码能力;在不需要对生产数据库中的数据进行任何改变的情况下,依据用户的角色、职责和其他IT定义规则,动态的对生产数据库返回的数据进行专门的屏蔽、加密、隐藏和审计,确保业务用户、外包用户、运维人员、兼职雇员、合作伙伴、数据分析/研发/测试团队及顾问能够恰如其分地访问生产环境的敏感数据。

    DMS-D在国家等级保护、分级保护等领域均具有很强的政策合规性;现已实现对Oracle、MySql、DB2、MSSQL、PostgreSQL等主流数据库,以及Windows、Linux、AIX、Solaris等主流数据库应用平台的支持,并可提供灵活的脱敏规则配置及脱敏规则扩展;同时,DMS-D能够满足企业在运维侧和应用侧的数据安全需求——在应用侧,脱敏后的数据可以保留原有数据的特征和分布,无需改变相应的业务系统逻辑,实现了企业低成本、高效率、安全的使用数据;在运维侧,对敏感数据进行遮蔽处理,既不影响正常运维工作,又能够保证数据安全。

    展开全文
  • 随着互联网、大数据等新兴技术的飞速普及应用,数据集中...目前,市面上的动态数据脱敏类产品良莠不齐,不同产品的技术路线和演进方式也存在差异。其中主流的技术路线有“结果集解析”和“语句改写”两种:下文将...
  • 因此我们需要动态路由,让路由器自己学习,自动适应网络变化、自动选择路线。路由的学习方法就是通过动态路由协议,动态路由协议很多,这里只讲两个。 动态路由协议 RIP协议 下面来解释一下RIP协议。RIP协议的标准...
  • 随着互联网、大数据等新兴技术的飞速普及应用,...目前,市面上的动态数据脱敏类产品良莠不齐,不同产品的技术路线和演进方式也存在差异。其中主流的技术路线有“结果集解析”和“语句改写”两种:下文将针对动态脱...
  •   代理模式装饰器模式,实现路线都是实现特地的接口,然后增加一些功能,那么它们的重要区别在哪呢?职能!,装饰器模式主要用于增强方法,而代理模式主要用于控制。举几个控制的例子,比如JDBC做事务,是否需要...
  • 在汽车行驶过程中随时来感应周围的环境,收集数据,进行静态动态物体的辨识、侦测与追踪,并结合导航仪地图数据,进行系统的运算与分析,从而预先让驾驶者察觉到可能发生的危险,有效增加汽车驾驶的舒适性安全性...
  • 静态用户界面 视图按钮,ImageView,TextView,EditText等 视图组LinearLayout,RelativeLayout,FrameLayout,ConstraintLayout 动态用户界面 回收站视图 ViewPager 微调器 自定义视图 帆布 位图 涂料 UI资源 ...
  • Javaweb学习路线

    2019-04-22 00:15:55
    上世纪90年代,随着Internet浏览器的飞速发展,基于浏览器的B/S模式随之火爆发展起来。 最初,用户使用浏览器向WEB服务器发送的请求都是请求静态的资源,比如html、css等。 但是可以想象:根据用户请求的不同动态...
  • c++学习路线

    2018-07-05 10:34:00
    漫漫长路,半程风雨,半程春。 ​​​​ 数据类型 引用 类的封装 -->完成 构造析构 --> 完成 静态成员 对象管理 -->完成 类的构造 有参构造函数、-->...对象动态管理、--&...
  • 为了提升用户旅游的满意度,重点考虑了POI的动态属性,提出基于用户需求的景点路线利益规划算法。首先,设计了 GM(1,1)马尔可夫景点人数预测算法,通过引入预测残差以及概率转移矩阵,使平均预测偏差比原GM(1,1)算法...
  • 在安卓中,广播的接收有动态注册和静态注册两种方式,这篇博客沿着动态广播的注册、发送和接收三条路线开展探究。 动态广播的注册 首先,先整理一波动态注册的鸟瞰图 从图中可以看到 1)代码中调用的...
  • 我的学习路线

    2017-04-07 13:27:05
    Java语言(动态语言) Go语言(静态语言) 前端框架:angular JS、React Netty框架、高并发多线程编程 JavaScript脚本编程语言 Linux
  • C++后台开发学习路线

    2020-08-26 15:28:12
    一、语言基础 1 语法基础 重点掌握:(务必熟悉底层机制原理) 指针引用的概念 指针与内存关系 程序编译过程 static、const、#define的用法区别 ...静态绑定和动态绑定 new/deletemalloc/free 重载
  • C语言与C++学习路线

    2020-06-28 14:53:53
    类的封装,构造析构、静态成员、对象管理; 类的构造(有参构造函数、无参构造、拷贝构造、默认构造函数)析构; 对象动态管理、友元函数、友元类、操作符重载; C++编译器对象管理模型分析; 类对象的动态管理...
  • 为了更好地能够更好地了解这个问题,最先,大家将动态IP和静态IP差别起来。在你每一次网上时,电信网会任意分派一个IP地址做为动态性IP。换句话说,IP地址发生了转变,尽管这类转变是按时转换的。静态IP是一个IP地址...
  • 本文记录了确定gsExtractor的技术路线过程中所做的编程实验。这是第二部分,第一部分实验了用xslt方式一次性提取静态网页内容并转换成xml格式。留下了一个问题:javascript管理的动态内容怎样提取?那么本文就回答这...
  • 本文记录了确定gsExtractor的技术路线过程中所做的编程实验。这是第二部分,第一部分实验了用xslt方式一次性提取静态网页内容并转换成xml格式。留下了一个问题:javascript管理的动态内容怎样提取?那么本文就回答这...
  • 【Oracle 11g学习路线

    2019-06-10 23:07:37
    整理Oracle 11g学习内容如下: Oracle 11g数据库软件安装 Oracle 11g DBCA创建数据库 ...实例数据库启动过程详解 数据库实例关闭过程详解 Create Database创建数据库 Oracle 11g 安全性 实施数据...
  • java web 前端学习路线

    2016-08-27 14:49:17
     超文本标记语言(HyperText Mark-up Language 简称HTML)是一个网页的骨架,无论是静态网页还是动态网页,最终返回到浏览器端的都是HTML代码,浏览器将HTML代码解释渲染后呈现给用户。因 此,我们必须掌握HTML的基本...
  • 它可以是静态的( <code>/terms_of_service</code> )或者动态的( <code>/posts/xyz</code> ),甚至还可以包含查询参数( <code>/search?keyword=meteor</code> )...
  • Web前端的学习路线

    2016-03-30 20:56:00
     超文本标记语言(HyperText Mark-up Language 简称HTML)是一个网页的骨架,无论是静态网页还是动态网页,最终返回到浏览器端的都是HTML代码,浏览器将HTML代码解释渲染后呈现给用户。因 此,我们必须掌握HTML的基本...
  • 真BGP实现了用户最佳路径的自动选择 即使遇到单条线路故障,BGP依然可以自动引导用户...比如一个号称五线BGP的机房,其中联通、移动、A企业为BGP动态带宽,而中国电信B企业为静态带宽,一旦联通或其它动态带宽线...
  • c/c++学习路线

    2017-09-07 09:42:25
    1:C语音  数据类型、变量、内存布局、指针基础;... 动态库的封装设计;  函数指针回调函数。 2:C++语言  面向对象编程思想;  类的封装、构造析构、静态成员、对象管理;  类的构造(有参构造
  • 有多少伙伴是因为一句‘人生苦短,我用Python’萌生想法学Python的!...编程开发语言有很多种,通常大家把开发语言划分为静态编译和动态解析语言,静态编译语言有我们常见的c,c++等,动态解析语言有我们常见的py...

空空如也

空空如也

1 2 3 4 5 ... 8
收藏数 146
精华内容 58
关键字:

动态路线和静态路线