精华内容
下载资源
问答
  • 针对给定图像的应用场合,有目的地强调图像的整体或局部特性,将原来不清晰的图像变清晰或强调某些感兴趣的特征,扩大图像中不同物体特征之间的差别,抑制不感兴趣的特征,使改善图像质量、丰富信息量,加强图像...
  • Pow机制诞生于1997年Adam Back设计的Hashcash系统,它最初被创造出来是为了防止垃圾邮件所用。但是,2009年中本聪却创造性的将其应用到了比特币系统中,这无疑是一种典型的应用式创新。但在严格意义上来说,中本聪在...

    Pow机制诞生于1997年Adam Back设计的Hashcash系统,它最初被创造出来是为了防止垃圾邮件所用。但是,2009年中本聪却创造性的将其应用到了比特币系统中,这无疑是一种典型的应用式创新。但在严格意义上来说,中本聪在比特币中所采用的是一种可重复使用的Hashcash工作证明,使得生成工作量证明可以是一种概率意义上的随机过程。在该机制下,网络上的每一个节点都在使用sha256哈希算法运算一个不断变化的区块头的hash值。共识要求算出的hash值必须等于或者小于某个给定的值。在比特币系统中,运算生成给定条件的hash值的节点被称为‘矿工’。而pow的整个过程被称为‘挖矿’。

    比特币为了增强系统的健壮性以及数据的不可篡改性,对于整个挖矿的过程所消耗的时间进行了控制,大概10钟左右,比特币系统才会产生一个新的区块。随着比特币整个区块高度越来越大,以及挖矿时间的限制,使得篡改数据在量子计算技术尚未真正突破的今天,变得并不现实。但是也正是因为挖矿时间衍生出挖矿会消耗大量计算资源这样一个问题。才会导致了比特币系统并不适合商用,而仅仅被定义为一种点对点的电子现金系统模型,而不能真正成为与中心化金融系统匹敌的稳定数字货币。

    此文章仅从挖矿这一角度进行分析,后续还会从其它角度分析区块链系统中各种技术运用的得与失。

    展开全文
  • 尝试篡改密文页面提示“实名认证异常”:猜测该密文涉及用户信息,且通过前端 JS 解密,验证。手工分析要分析前端,自然打开浏览器的开发者工具。习惯性按下 F12 键,无反应,显然页面禁用 F12,没有调试环境,...

    e07087a13ca0d58ad666396c8cd6e1e3.gif

    近日,参加金融行业某私测项目,随意选择某个业务办理,需要向客户发送短信验证码:

    9dfbd633a7f57561e6bc5b7a09649880.png

    响应报文中包含大段加密数据:

    bd19b2ae2d80d5ac5a5e008e7e088308.png

    全站并非全参数加密,加密必可疑!尝试篡改密文页面提示“实名认证异常”:

    694908047adf9b5acde370b3ae545675.png

    猜测该密文涉及用户信息,且通过前端 JS 解密,验证之。

    手工分析

    要分析前端,自然得打开浏览器的开发者工具。习惯性按下 F12 键,无反应,显然页面禁用 F12,没有调试环境,所有后续工作均无法开展,我得创造环境。

    1.1 创造前端调试环境

    虽然禁用 F12,但未禁用 shift-F5,它也能启用开发者工具,或者,页面也未禁用右键,我从元素审查菜单项同样进入开发者工具。前端采用 webpack 打包 通过开发者工具的 {} 简单美化:

    514d94da743dc1f31e6878200077251a.png

    刚执行前端代码,页面卡死,应该存在反调试逻辑:

    d17a1f74fce85450e5e2ede325b598f8.png

    多次单步执行,发现 setTimeout(e, 100) 语句:

    22f6ef71ab0a80577c2cbbc5ed8125da.png

    业务上几乎不可能用到 100 毫秒的定时器,猜测用于反调试。全局搜索(ctrl-shift-f)该语句,发现只存在于 businessReservation.js 中:

    f1d19f0f7371bf2299ed11829c9b62db.png

    尝试删除该语句,看能否禁掉反调试。由于 JS 已被浏览器加载至内存,即便通过开发者工具删掉该语句,浏览器照样会执行它,所以,必须得在浏览器拿到 JS 前就将其删除,也就是说,得让服务端重新下发该 JS,拦截响应包,删除该语句后放行至浏览器。具体而言,JS 作为静态资源,优先从本地缓存中获取而非服务端,必须强制刷新页面(ctrl-shift-r),拦截返回 businessReservation.js 的响应包搜索关键字 setTimeout(e, 100),无果:

    178b85fcf652965e65112644e1e24770.png

    考虑到关键字 setTimeout(e, 100) 是经浏览器美化(代码格式化)之后的,尝试去掉逗号后面的空格,用关键字 setTimeout(e,100) 再次搜索,命中:

    1c939cc1b4a034566102405b21ece8e7.png

    将 setTimeout(e, 100) 改为空语句 ;:

    a5b25de022f175f38d95b091043b1854.png

    放行修改后的 JS 至客户端,之后,前端代码可正常执行,也可随意下断点:

    c3cb8395adcf4f44af7bf63263fdea57.png

    这下算是创建出了前端调试的环境。

    1.2 解密 Data

    现在我得想法找出解密函数。与 Data 同时返回至客户端的字段还有 ResultCode:

    6f73a4f92505c86aeb9574b53ef16f9c.png

    全局搜索 ResultCode,发现只出现在 businessReservation.js 中:

    d87be7d9aceb808aabac11f281c583c9.png

    但有二十来处,得排除无关项。我猜测前端大致逻辑,先检查 ResultCode 是否为表示查询成功的状态码 1000,若是则解密 Data,若不是则报错,伪码类似:

    af0e309074e063791fc3463f291ebcae.png

    那么,代码中一定是先出现 ResultCode,与之同行或后续行(如,四行,-a4)出现 Data,按此思路验证。

    首先,我将该 JS 另存至本地,大小写敏感查找关键字 .ResultCode,将其所在行及其后续四行作为输入,再次查找关键字 .Data,出现了九处:

    605daf4602ee482e7716736076c5c57c.png

    然后,考虑到要对 Data 解密,一定是作为实参传给某个函数,上面候选的九行中,只有 1414 和 1767 两行在传递实参调用函数:

    te.CBC(i.Data, 'Dxxxxxxx1')

    其中,第一个参数为待解密的密文,第二个参数像是密钥,另外,联想到 DES 加密算法的分组模式之一就有 CBC,大概率是它。

    接着,我全局搜索关键字 CBC,多个文件存在匹配项,大部分为函数调用唯有 businessReservation.js 中的 1477 和 1498 行是函数定义:

    ca4b3936a1fd5417c9fa80a67a4c4651.png

    其中,1477 行的函数定义如下:

    3440f10e847a8a398ee3608ad5e63eb6.png

    1498 行的函数定义如下:

    bf891df42eef22186f54acbaf8ec02e2.png

    回想前面看到的是对象 te 在调用成员函数 CBC(),毋庸置疑,1498 行的 CBC() 就是我要找的解密函数。

    最后,1499 行下断点方便晓得是否进入解密函数,1507 行下断点可从栈中查看解密后的明文,多步执行后,在该函数返回值中看到解密结果:

    c1701002b06a176f8f7532f02b4e02a0.png

    为更清晰查看明文内容,我在 console 中直接调用 CBC() 解密并对结果 JSON 格式化:

    var ciphertext = 'a91cbf8fe19a8238……………………..fde7523032d166ba710c2a6aa501';
    JSON.parse(te.CBC(ciphertext, 'Dxxxxxxx1'));

    发现单位和家庭地址、姓名等敏感信息,另外,ID_ICCID 字段疑似某种编码后的身份证号码:

    1e985a509db2e12e460fcf5fdc2fad0e.png

    1.3 Data 解密脚本化

    为便于后续自动化,我尝试将 CBC() 转为 python 脚本。从源码可知,采用 DES 解密算法、分组模式为 CBC、填充方式 pkcs7,单步调试可知,密钥为 Dxxxxxxx1,剩下偏移量暂不清晰,只是知道基于密钥加工而来,python 无法成功解密:

    5a5f6e940567955788d9c4c894d2277b.png

    怀疑是偏移量没生成对。

    换思路,考虑直接运行 JS 脚本。源码可知,CBC() 调用 crypto-js 库中 DES 实现,在获取解密关键要素后,我参照写了个可读性更强的版本 decrypt_data.js:

    de91fd0d148b39ea02fd06c5b3b391b6.png

    通过 nodejs 命令行运行 decrypt_data.js,成功解密,获取用户信息:

    ec4f716b9d599e194b61de424adaa5f1.png

    为便于其他 python 脚本调用我打算对 decrypt_data.js 简单 python 封装。

    个人偏好用 js2py 库实现 python 中执行 JS,于是我迅速地将 decrypt_data.js 进行 python 化,编写脚本 decrypt_data_by_js2py.py:

    c5b61c6350f3c48d664753d86523508f.png

    由于 js2py 需在执行期进行代码翻译,导致运行效率不理想:

    141f00090366a3b1a955a77607bf29d8.png

    回想先前 nodejs 版的 decrypt_data.js 运行效率不错,考虑用 python 调用 nodejs 命令行。先得优化 decrypt_data.js,让其支持命令行选项:

    1b3289ef1c1a87f0a7d67acb41f72622.png

    借助 subprocess 库调用命令行 nodejs decrypt_data.js {cipher},编写 decrypt_data_by_nodejs.py 脚本:

    b76150ae1405eddb63c12ed04dc0782a.png

    效率显著提升:

    f2ab9db94d882b01d216c25022399966.png

    (题外话,某些站点的登录密码通过前端加密后在提交至服务端,很多小朋友觉得无法跑字典暴破,你看这儿是不是就给你了一个样例:找出对密码加密的 JS 函数,将其提取另存为 JS 文件,加工 JS 文件使其支持命令行参数,用 nodejs 带明文密码参数运行 JS 文件,用 python 读取明文密码字典作为命令行参数调用 nodejs 命令生成密文密码文件,把密文密码文件喂给 burp 的 intruder 暴破即可。)

    现在,还剩 ID_ICCID 暂未搞定。它看起来神似 base64 编码,就是最开头多了两个 ++,像是某种标志,尝试去掉后成功解码:

    b662edcb773cd356e1ec17cfee2625c7.png

    验证的确为身份证号码:

    fd9474fb3c63271ce7afd37718047fdc.png

    此,确认 /xx/api/xxxx/h5/xx/sChkBlPhone 接口泄漏了用户信息三元素

    b2abf1c6f96327948a1745aa5be189d4.gif

    展开全文
  • 其实一开始我对于这个问题也很迷茫,经过几次“撞车后,以及请教CSDN前辈后将所学的分享给有文士:用户控件代码如下: address1 address2 
    其实一开始我对于这个问题也很迷茫,经过几次“撞车后,以及请教CSDN前辈后
    将所学得的分享给有文之士:

    用户控件代码如下:
    <%@ Control Language="C#" AutoEventWireup="true" CodeFile="WebUserControl.ascx.cs" Inherits="UserControl_WebUserControl" %>
    <table style="width: 100%;">
        <tr>
            <td>
                address1</td>
            <td>
               <asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>
            </td>
        </tr>
        <tr>
            <td>
                address2</td>
            <td>
                <asp:TextBox ID="TextBox2" runat="server"></asp:TextBox>
            </td>
        </tr>
        <tr>
            <td>
                <asp:Button ID="Button1" runat="server" Text="Button" οnclick="Button1_Click" />
            </td>
            <td>
               
            </td>
        </tr>
    </table>

    在一个aspx页面中连续两次运用这个用户控件 要求在点击其中一个用户控件的Button后,将其中的TextBox值对应的显示到另外一个用户控件的对应的TextBox中

    实现代码如下:
    用户控件中代码如下:
    using System.Data;
    using System.Linq;
    using System.Web;
    using System.Web.Security;
    using System.Web.UI;
    using System.Web.UI.HtmlControls;
    using System.Web.UI.WebControls;
    using System.Web.UI.WebControls.WebParts;
    using System.Xml.Linq;


    public partial class UserControl_WebUserControl : System.Web.UI.UserControl
    {
        public EventHandler myClick;

        public string Text1
        {
            set { TextBox1.Text = value; }
            get { return TextBox1.Text; }
        }

        public string Text2
        {
            set { TextBox2.Text = value; }
            get { return TextBox2.Text; }
        }


        protected void Page_Load(object sender, EventArgs e)
        {

        }
        protected void Button1_Click(object sender, EventArgs e)
        {
            if (myClick != null)
            {
                myClick(this, e);
            }
        }
    }


    aspx页面的实现代码如下:
    using System;
    using System.Configuration;
    using System.Data;
    using System.Linq;
    using System.Web;
    using System.Web.Security;
    using System.Web.UI;
    using System.Web.UI.HtmlControls;
    using System.Web.UI.WebControls;
    using System.Web.UI.WebControls.WebParts;
    using System.Xml.Linq;

    public partial class _Default : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            WebUserControl1.myClick += new EventHandler(click1);
            WebUserControl2.myClick += new EventHandler(click2);
        }

        protected void click1(Object sender, EventArgs e)
        {
            WebUserControl2.Text1 = WebUserControl1.Text1;
            WebUserControl2.Text2 = WebUserControl1.Text2;
        }

        protected void click2(Object sender, EventArgs e)
        {
            Response.Write(WebUserControl2.Text1 + "   " + WebUserControl2.Text2);
        }
    }

    好了就是这样得了 看似很简单,也确实很简单
    但有很多细节需要注意的

    而我们普通的情况下 如在控制台应用程序下 实现委托和事件的方法可能如下:
    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;

    namespace ConsoleApplication1
    {
        public delegate void runing(string r,int key);
        public class Program
        {
            public runing myclick;

            static void Main(string[] args)
            {
                Program pa = new Program();
                pa.getClick();

                pa.myclick("Program", 1);
            }

            public void getClick()
            {
                if (myclick == null)
                {
                    myclick += new runing(regText);
                }
            }

            public void regText(string r, int key)
            {
                Console.WriteLine("我已被调用");
            }
        }
    }

    这样的用法 我想大家都不会他陌生

    用户控件:

    展开全文
  •  想当年大学时候宿舍控制网速,苦了我们这帮魔兽党,一到晚上工会活动我们就和全校上万名学生抢网速,作为坦克的我总是因为网速问题导致团灭,咱也是有自尊的人,一怒下花300元办了个游戏加速器,果然顺畅了...

    一、代理服务器应用场景分析

      想当年大学时候宿舍控制网速,苦了我们这帮魔兽党,一到晚上工会活动我们就得和全校上万名学生抢网速,作为坦克的我总是因为网速问题导致团灭,咱也是有自尊的人,一怒之下花300元办了个游戏加速器,果然顺畅了不少,宿舍朋友看我办代理,他们也买,总之第一次接触代理就是在大学时代,如今做技术了才开始深入探究这东西了,那么我们企业应用的代理不简简单单是加快网速的作用,还有很多功能,等我慢慢给你们说……

      代理服务器可以代替客户端向网站发出数据的请求,然后它会做一个缓存将得到的静态数据保存在代理服务器的缓存,缓存在它本地里面,等下一次有用户去进行请求的时候,代理服务器就会把这些数据直接交还给客户端,加快访问速度,企业要求的提升网速目的就实现了,常用的代理服务器软件有Squid、Nginx

      我们知道iptables 防火墙可以对局域网起到良好的保护作用,并提供了SNAT和DNAT地址转换策略,为共享接入互联网提供了方便,但是iptables不容易实现企业对员工的上网访问实施非法站点屏蔽,限制文件下载等管理和提升企业上网速度;我们知道它是包过滤型防火墙,工作在网络层和传输层,而代理服务器呐属于工作在应用层,相当于一个应用层的防火墙。

      Squid里面有ACL访问控制列表,可以自行定义哪些企业人员可以在什么时间段上网等功能,以及可以达到上网访问的数据的类别,比如我们只允许某些员工上网查资料,而不允许登录qq等操作,都可以通过Squid来精确的控制。但是有些应用程序不允许使用代理,这也算是它的一个弊端把,另外注意代理服务器不是一个网关服务器,不需要开路由转发功能,因此安全性要比iptabls好

    二、代理的分类

      根据实际应用方式分类:传统代理、透明代理;下面还会介绍一种反向代理,我们可以简单地这样理解,普通代理是内网访问外网时配置的,反向代理就是外网需要访问我们局域网服务器配置的

      传统代理多用于Internet环境,比如说,为我们qq程序使用代理,可以隐藏本机真实的IP,为下载工具使用代理,可以避免我们服务器并发连接的限制,透明代理呐,多用于局域网环境,比如说咱们Linux网关中,启用透明代理,局域网主机就不用进行设置了,适合内部员工上网

    1、传统代理

      普通的代理服务,须在客户机的浏览器、QQ聊天工具、下载软件等程序中手动设置代理服务器的地址和端口、由代理服务器代替客户机去请求数据

      例如访问某些国外网站,可以通过一台Internet上的代理服务器

    2、透明代理

      客户机不需要指定代理服务器的地址和端口,而是通过默认路由、防火墙策略将Web访问重定向给代理服务器处理

    3、反向代理

      接受因特网的连接请求,并将请求转发给内网的服务器,获得数据后返回给因特网的客户端,类似于用iptables的DNAT策略发布服务器

    三、代理的工作机制

      当我们客户机对网站进行访问请求时,代理服务器首先会查看自己的缓存里有没有客户机要访问的静态数据,同时访问网站,比对静态数据的一致性,如有不同,则更新静态数据,随网站提供的动态数据一起,把动静态数据一起交给客户机。

      以上过程我再拿一个例子解释一下,我们大家都在火车票代购点买过票吧,当我们需要买票时,我们先到达代购点,OK,这时就可以说我们(客户机)与代购点(代理服务器)联通了,另外,代购点的电脑(代理服务器)也肯定要与火车站售票网站(www.163.com)联通吧,Ok,我们发出买票请求,北京到南京的T888次列车,代购点肯定要查一下电脑,看一看此时我要买的火车票在此时还有没有吧,这就相当于代理服务器首先会查看自己的缓存里有没有客户机要访问的静态数据这一步,查完电脑,证明还有的话直接打印此次列车,就相当于把数据还给我们,如果查完没有票了,就会同步其他能到南京的列车,打印别的车次的火车票给我们,好了,这就是它整个的工作机制。

    四、Squid安装与初始化

     1 ~]#tar zxvf squid-3.4.6.tar.gz -C /usr/src/
     2 ~]#cd /usr/src/squid-3.4.6/
     3 ~]#./configure --prefix=/usr/local/squid --sysconfdir=/etc/ --enable-arp-acl --enable-linux-netfilter --enable-linux-tproxy --enable-async-io=100 --enable-err-language="Simplify_Chinese" --enable-underscore --enable-poll --enable-gnuregex
     4 ~]#make && make install
     5 ~]#ln -s /usr/local/squid/sbin/squid   /usr/local/sbin/
     6 ~]#useradd -M -s /sbin/nologin squid  (这个用户主要用来设置初始化缓存目录的)
     7 ~]#chown -R squid:squid /usr/local/squid/var
     8 ~]#vim /etc/squid.conf
     9 其中可见
    10 http_port 3128(监听端口为3128,另外通过icp_port项也能配置监听端口)
    11 添加运行用户和组还有提示用配置项
    12 cache_effective_user squid
    13 cache_effective_group squid
    14 visible_hostname 192.168.1.1(当squid出现问题时,可提示192.168.1.115 ~]#squid -k parse  (检查配置文件)
    16 ~]#squid -z (初始化目录,清除缓存)
    17 ~]#squid (运行服务)
    18 ~]#netstat -anpt | grep squid
    19 tcp        0      0 :::3128                     :::*                        LISTEN      6187/(squid-1) 
    20 
    21 扩展命令如下:
    22 ~]#killall -9 squid (关闭squid)    
    23 ~]#squid -k reconfigure (重新加载,但不中断服务,配置更改后,建议用这种方式加载)

    注:我写了一个脚本来控制squid服务,大家可以参考我SHELL脚本分类里的文章http://www.cnblogs.com/mangood/p/6033044.html,把脚本放在/etc/init.d/squid下添加为系统服务,然后加执行权限chmod +x /etc/init.d/squid,再加为系统默认启动服务chkconfig --add squid并chkconfig squid on

    转载于:https://www.cnblogs.com/mangood/p/6032644.html

    展开全文
  • 尝试篡改密文页面提示“实名认证异常”:猜测该密文涉及用户信息,且通过前端 JS 解密,验证。手工分析要分析前端,自然打开浏览器的开发者工具。习惯性按下 F12 键,无反应,显然页面禁用 F12,没有调试环境,...
  • Android BLE开发Android手机与BLE终端通信

    万次阅读 多人点赞 2014-04-21 20:22:28
    最近穿戴设备发展很火,把相关技术也带旺了,其中一项是BLE(Bluetooth Low Energy)。BLE是蓝牙4.0的核心Profile,主打功能是快速搜索,快速连接,超低功耗保持连接和传输数据,弱点是数据传输速率低,由于BLE的...
  • Android BLE开发Android手机与BLE终端通信 程序文件

    千次下载 热门讨论 2014-04-21 20:06:20
    最近穿戴设备发展很火,把相关技术也带旺了,其中一项是BLE(Bluetooth Low Energy)。BLE是蓝牙4.0的核心Profile,主打功能是快速搜索,快速连接,超低功耗保持连接和传输数据,弱点是数据传输速率低,由于BLE的...
  • 整理了部分近两年深度学习结合SLAM的一些...仅为自己学习所用,确实翻译很烂…………1. 深度学习跟SLAM的结合点深度学习和slam的结合是近几年比较热的一个研究方向,具体的研究方向,我简单分为三块,如下。1.1 深
  •  机算机科学是一门应用科学,它的知识体系是典型的倒三角结构,所用的基础知识并不多,只 是随着应用领域和方向的不同,产生了很多的分支,所以说编程并不是一件很困难的事情,一个高中生经过特定的训练就可以做...
  • 书中的内容丰富多彩,跟其他的软件工程书不一样,其他书往往写千篇一律,太生硬呆板,而这本书的内容给读者一种欢快的阅读体会,能让人更加的快速去接受里面的内容,并吸收为自己所用;并且里面的内容...
  • 前面已经分析了b站视频下载所用数据 这篇主要是说下载相关操作。 这里是用是开源下载工具aria2 所以用这个下载工具来下载因为 这个工具可以跟任何语言进行交互实现下载 一.下载aria2 下载地址...
  • 架构师

    2021-03-03 01:16:28
    1、引言机算机科学是一门应用科学,它的知识体系是典型的倒三角结构,所用的基础知识并不多,只是随着应用领域和方向的不同,产生了很多的分支,所以说编程并不是一件很困难的事情,一个高中生经过特定的训练就可以...
  • Cocados在开始时是三个职位一。 目的是将它们全部移到右侧的职位。 它们应与开始时一样,即按大小顺序排列。 为此,您必须在各个帖子之间交换光盘。 唯一的规则是,就大小而言,您不能将较大的磁盘放在较小的磁盘...
  • HTML5WebSocket

    2020-12-28 08:59:45
    WebSocket 使得客户端和服务器之间的数据交换变更加简单,允许服务端主动向客户端推送数据。在 WebSocket API 中,浏览器和服务器只需要完成一次握手,两者之间就直接可以创建持久性的连接,并进行双向数据传输。 ...
  • TCP参数backlog

    2020-09-19 23:54:19
    backlog参数为socket套接字监听端口时,内核为该套接字分配的一个队列大小,在服务端还没有来及处理请求时暂时缓存请求所用的队列。如果队列已经被客户端socket占满了,还有新的连接过来,那么ServerSocket会拒绝...
  • pythonNumPy基础

    2019-01-25 20:32:28
    注:因为初次接触Numpy,这篇总结中有些知识点的理解参考了其他博主的文章。 使用时首先导包: import numpy as np ...seed( ) 用于指定随机数生成时所用算法开始的整数值。 1.如果使用相同的seed( )值,则每...
  • 交付驱动方法的情况,A Case for a "Deliverables Driven" Approach By Russ Finney(来自...他们给出持这种看法的原因: *为什么建造出来的东西最终会改变并变过时? *编制正规文档将占用真正任务所用的时间:
  • 数据结构七大排序

    2019-09-01 22:39:06
    假设含有n个记录的序列为,其相应的关键字分别为,需确定1,2,......,n的一种排列,使其相应的关键字满足(非递减或非递增)关系,即使序列成为一个按关键字有序的序列,这样的操作就称为排序。 假设,且在排序前...
  • 这是一篇不错的论文,对多元统计中的主成分分析讲述非常细致,它也许正是你所需要的,愿他为你所用
  • 初读构建

    2017-04-23 16:28:00
    大概看了构建法的简介目录等内容,发现本书主要介绍了软件测试、软件工程师的成长、编写代码的规范、团队合作开发软件的重要性、还有开发软件项目的总体流程、IT的发展创新等等,书中的内容丰富多彩,跟其他的软件...
  • 02-Python基础列表

    2018-11-24 23:58:00
    Python基础列表 一、列表的切片与增删改查 ...#切片与字符串一样,索引值都是从0开始,所用得方法都一样[:][:-1][0:-1][2:4][:4][4:][1:-2:2][1:-3:-2] #列表增append(),insert li.append('关...
  • 数字系统作业程序改错 前言 本次作业所用软件为Quartus||9.0,所用板载为EPF10K20T144-4。本篇博客仅供参考学习。 注意事项 (1)创建VHDL工程时选择板载系列一定要按照板载芯片上的系列选中。 (2)目前使用的...
  • 书中的内容丰富多彩,跟其他的软件工程书不一样,其他书往往写千篇一律,太生硬呆板,而这本书的内容给读者一种欢快的阅读体会,能让人更加的快速去接受里面的内容,并吸收为自己所用;并且...
  • 本文的文字及图片来源于网络,仅供学习、交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理 ( 想要学习Python?Python学习交流群:...二、所用库 import re import tkinter as
  • ①机械特性:就是用的接口所用接线器的形状,尺寸,引脚数目,等一些硬件条件; ②电气特性:指明在接口电缆的各条线上出现的电压的范围;(电压在一定范围,要不不知道这新来的电压是啥意思了) ③功能特性:就是...
  • 这一段时间工作比较忙,自己也变懒惰了一些,回头看看博客已经有半年多没有更新了。还是要让自己保持一颗不断学习的心的,就以SpringMVC的RequestMappingHandlerMapping的分析作为新的开始吧,本文所用的SpringMVC...

空空如也

空空如也

1 2 3 4 5 ... 19
收藏数 379
精华内容 151
关键字:

得之所用