F2

如何使用加密芯片完成SHA1摘要运算

让人想犯罪 __ 提交于 2019-12-07 21:43:47
1.测试目标 使用LKT系列加密芯片进行SHA1摘要运算并使用openssl验证正确性 2.测试环境 本示例LKT加密芯片运行环境为windows系统、测试软件LCS KIT、LKT-K100开发板。Linux ubuntu 14.04系统、OpenSSL 1.0.1f 6 Jan 2014。 3.测试步骤 注意:“->”表示使用LCS KIT软件操作LKT-K100向加密芯片发送数据 “<-”表示使用LCS KIT软件操作LKT-K100读回加密芯片输出的数据 加密芯片交互数据为16进制ASCII码 3.1 确认待加密数据 本例使用的明文摘要数据为0x313132323333343435353636,对应的字符串为“1122334455667788” 3.2 使用LCS KIT软件操作LKT-K100连接加密芯片后,进行复位操作,此步骤省略 3.3 执行摘要操作 -> 80C200000C313132323333343435353636 <- 6114 -> 00C0 0000 14 <- 24C1F4B4103E7017ECCFE8BAF33202F27FA4C197 9000 其中红字部分为使用SHA1算法对0x313132323333343435353636进行摘要后获得的结果。 返回数据中的C1表示加密后的结果,其长度为0x80字节,9000是加密成功的状态码 3.4

求职Python开发,面试官最喜欢问的几个问题

蹲街弑〆低调 提交于 2019-12-07 15:18:44
关注公众号「 Python专栏 」,后台回复: 简历模板 ,获取给大家准备的价值99元的程序员简历模版11份。 0. 概述 Python是个非常受欢迎的编程语言,随着近些年机器学习、云计算等技术的发展,Python的职位需求越来越高。下面我收集了一些Python面试官经常问的问题,供大家参考学习。 1. 类继承 有如下的一段代码: class A: def show(self): print 'base show' class B(A): def show(self): print 'derived show' obj = B() obj.show() 如何调用类A的show方法了,方法如下: obj.__class__ = A obj.show() __class__ 方法指向了类对象,只用给他赋值类型A,然后调用方法show,但是用完了记得修改回来。 2. 方法对象 问题:为了让下面这段代码运行,需要增加哪些代码? class A(object): def __init__(self, a, b): self.__a = a self.__b = b def myprint(self): print('a=', self.__a, 'b=', self.__b) a1 = A(10,20) a1.myprint() a1(80) 答案:为了能让对象实例能被直接调用,需要实现 _

java synchronized关键字的用法--对象锁和类锁

北战南征 提交于 2019-12-07 01:34:01
在java编程中,经常需要用到同步,而用得最多的也许是synchronized关键字了,下面看看这个关键字的用法。 因为synchronized关键字涉及到锁的概念,所以先来了解一些相关的锁知识。 java的内置锁:每个java对象都可以用做一个实现同步的锁,这些锁成为内置锁。线程进入同步代码块或方法的时候会自动获得该锁,在退出同步代码块或方法时会释放该锁。获得内置锁的唯一途径就是进入这个锁的保护的同步代码块或方法。 java内置锁是一个互斥锁,这就是意味着最多只有一个线程能够获得该锁,当线程A尝试去获得线程B持有的内置锁时,线程A必须等待或者阻塞,直到线程B释放这个锁,如果B线程不释放这个锁,那么A线程将永远等待下去。 java的对象锁和类锁:java的对象锁和类锁在锁的概念上基本上和内置锁是一致的,但是,两个锁实际是有很大的区别的,对象锁是用于对象实例方法,或者一个对象实例上的,类锁是用于类的静态方法或者一个类的class对象上的。我们知道,类的对象实例可以有很多个,但是每个类只有一个class对象,所以不同对象实例的对象锁是互不干扰的,但是每个类只有一个类锁。但是有一点必须注意的是,其实类锁只是一个概念上的东西,并不是真实存在的,它只是用来帮助我们理解锁定实例方法和静态方法的区别的 上面已经对锁的一些概念有了一点了解,下面探讨synchronized关键字的用法。

已经选择IDE模式安装完操作系统后开启AHCI的方法

送分小仙女□ 提交于 2019-12-06 20:53:38
现在的硬盘基本都是串口(SATA)的了,相比并口硬盘(IDE)而言,串口硬盘有很多好处。但是大多数人电脑的硬盘其实依然是使用IDE模式在工作着。这是因为XP SP3之前的操作系统都不带SATA驱动,因此安装SP2版的XP,串口硬盘就必须选择IDE模式安装,否则进入系统时会蓝屏,另外XP核心的PE也无法识别SATA模式的硬盘。所以电脑城的装机工一般在装机前都会把硬盘模式改为IDE,这样兼容性相对较好,同时可以避免一些无知用户遇到安装XP蓝屏时不知所措。但是让SATA硬盘工作在IDE模式下无法发挥出SATA硬盘的优势,因此建议串口硬盘开启sata模式。 XP操作方法 1、确定已安装了主板驱动程序(不能确定就重新装一遍好了); 2、然后安装驱动光盘中适用于WINXP系统的ahci驱动,点击该文件夹中的setup.exe。注意:该驱动安装到最后时会弹出一个错误提示窗口,这时候不要点掉那个错误提示窗口(就让它停在错误提示状态!切记!) 3、选择我的电脑, 右键点击选择“属性” 选择“硬件” 栏, 点击“设备管理器”; 4、点击ide /atapi控制器左边的+号 ,打开会显示2个“*******controller”设备; 5、选择其中一个设备后右键点击“选择”属性,选择“驱动程序” 标签 ,然后选择“更新驱动程序”选项; 6、这时会出现欢迎使用硬件更新向导,问是否需要连接到Internet

TMS320C28x系列TMS320F2837x开发板的JTAG仿真器接口、ADC接口

妖精的绣舞 提交于 2019-12-06 08:24:35
TL2837x- Easy EVM 是一款基于广州创龙SOM-TL2837 x 核心板所设计的高端单/双核浮点开发板,它为用户提供了SOM-TL2837 x 核心板的测试平台,用于快速评估SOM-TL2837 x 核心板的整体性能。 JTAG 仿真器接口 可以通过JTAG接口(CON4)烧写程序和进行软件调试。CON13接口包含了完整14Pin JTAG标准信号,各引脚定义如下图 : ADC 接口 板载 1 个 24 路 12bit 的 ADC 接口 , 对应 J 5 接口, 采用 排针 ( 30 pin )连接方式 ,接口定义如下图所示: 来源: https://my.oschina.net/u/4169033/blog/3136525

请你输出斐波那契数列的第n项(从0开始,第0项为0)

蓝咒 提交于 2019-12-06 05:34:37
方案一: public class Solution { public int Fibonacci(int n) { if(n==0) return 0; if(n<3) return 1; return Fibonacci(n-1)+Fibonacci(n-2); } } 方案二: public class Solution { public int Fibonacci(int n) { if(n==0) return 0; if(n<3) return 1; int f1=1; int f2=1; int result=0; for(int i=3;i<=n;i++){ result=f1+f2;; f1=f2; f2=result; } return result; } } 时间和内存对比 方案 时间 内存 方案一 772 4416 方案二 21 9104 建议:尽量用方案二,方案二一般更省内存,但方案一的思想更简单,代码量更少 来源: https://my.oschina.net/u/2511906/blog/3135906

高效使用VSCode的9点建议

丶灬走出姿态 提交于 2019-12-05 21:28:39
译者按: 充分利用其特性,你会觉得 VSCode 非常强大! 原文: Pro tips for Visual Studio Code to be productive in 2018 👨🏻‍💻 译者: Fundebug 为了保证可读性,本文采用意译而非直译。另外,本文版权归原作者所有,翻译仅用于学习。 在开源 IDE 市场,最近几年 Visual Studio Code(简称 VSCode)越来越流行。自从 2015 年对外发布后,根据 2018 年 Stack Overflow 的调查报告,有 35%的开发者转而使用 VSCode。我接下来会介绍一些建议和技巧来让你更加高效的使用 VSCode。 Git 和 Gitlens Git 可以说是在开发者中最流行的软件,从 IDE 直接操作 Git 会比通过命令行简单很多。Git 模块可以帮助你做 stage、commit、stash、undo 等操作。 Gitlens 插件提供了更多的可能性。Gitlens 最有用的特性就是你可以看到每一行代码的 commit 历史。 实时共享 VSCode Live Share 是一个实验性的特性。官网上这样说到: 无论构建什么类型的应用,使用何种语言编程或使用何种操作系统,当需要协作时,实时共享都能够立即将你的项目与队友共享。 队友可实时编辑和调试,无需克隆存储库或设置其环境。 通过 Live

SAP Cloud for Customer销售订单External Note的建模细节

大憨熊 提交于 2019-12-05 10:29:51
SAP Cloud for Customer的销售订单创建页面里,我们可以给一个订单维护External Note,当这个订单同步到S/4HANA生成对应的生产订单后,这个note可以作为备注提示生产工人。 它的建模逻辑是: 首先进入调试模式,查看到这个字段绑定到UI模型的TextCollection/CustomerInformation上 然后进入Cloud Application Studio,找到UI模型这个字段,查看发现它又绑定到了BO的TextByTextTypeCodeAndLanguageCode. 这里不难猜测出,SAP C4C BO上支持多种类型的note,通过typecode区分。 那么我怎么知道External Note对应的typecode的值呢?这个好办,在系统里维护一条带有External note数据的销售订单,比如这条: 然后通过OData读取这条销售订单,OData url如下: https://jerry.sap/c4c/odata/cust/v1/zjerrysalesorder/CustomerQuoteCollection('00163E7209B31EE98297C038F2A3FDDC')/CustomerQuoteText 响应里包含的字段TypeCode的值10024就是External Note的type code。

Linux装Windows系统,萌新必备攻略

China☆狼群 提交于 2019-12-05 03:10:09
     现如今电脑越来越普及,几乎人手一台电脑,但依然有很多人不知道怎么为荣耀MagicBook电脑重装系统。电脑出现问题,还要去电脑店花钱找人帮忙重装系统。其实电脑重装系统非常简单,借助U盘就能轻松重装系统。那么下面我就以Linux装Windows系统为例,教小伙伴们荣耀笔记本电脑怎么重装系统。   安装Win10系统前需要注意的一点是,如果不安装网卡驱动和Wi-fi驱动可能会发生上不了网的情况,我建议大家可以去B站搜索一下这个视频,下面的评论有win10安装包和驱动。当安装了Wi-Fi驱动和华为电脑管家后,就可以正常使用电脑了。      首先,我们需要在一台可以正常开机的电脑上使用软件MediaCreationTool,将Windows 10系统写入U盘,然后使用U盘为我们的荣耀笔记本电脑进行Win10系统重装。1、插入U盘,打开软件选择“为另一台电脑创建安装介质(U盘、DVD或ISO文件)”,随后选择语言和、版本和体系结构。笔者建议小伙伴们选择安装Windows 10家庭版,如果有喜欢企业版或者专业版的也可以尝试哦。      2、需要使用的介质选择“U盘”      3、开始下载系统写入U盘,并且会自动将U盘设置为启动硬盘。这时,安装系统的U盘已制作完成。      4、接下来是U盘安装最重要的步骤之一,在BIOS设置中将U盘设置为第一启动盘

适合钱包应用开发的ERC20代币数据集

你说的曾经没有我的故事 提交于 2019-12-04 22:18:44
Erc20Tokens 数据集包含超过1000种主流的以太坊ERC20代币的描述数据清单和图标,可用于钱包等区块链应用的开发,支持使用Java、Python、Php、NodeJs、C#等各种开发语言查询主流ERC20代币的相关数据。下载链接: ERC20代币数据集 。 1、数据集概述 以下是ERC20代币数据集中部分代币的图标示意: Erc20Tokens 数据集的的当前版本为1.0.0,主要文件清单参见: http://sc.hubwiz.com/codebag/erc20-tokens-dataset/ 2、数据集结构说明 数据集的主文件为 erc20-tokens.json ,其中的每个ERC20代币都包含以下描述信息: name :代币名称,例如:Dai symbol :代币符号,例如:DAI address :代币部署地址,例如:0x89d24a6b4ccb1b6faa2625fe562bdd9a23260359 例如 erc20-tokens.json 文件中Dai和Peerguess代币的数据: [ { "name": "Dai" "symbol": "dai", "address": "0x89d24a6b4ccb1b6faa2625fe562bdd9a23260359", } ... { "name": "Peerguess" "symbol": "guess",