solidity基础003
关键词:ABI delegatecall create/create2 selector try catch ABI编码解码ABI (Application Binary Interface,应用二进制接口)是与以太坊智能合约交互的标准。数据基于他们的类型编码;并且由于编码后不包含类型信息,解码时需要注明它们的类型。 ABI编码: 1. abi.encode 用于和合约交互,并将每个参数填充为32字节的数据,并拼接在一起 12345function encode() public view returns(bytes memory result) { result = abi.encode(x, addr, name, array);} 编码的结果为 0x000000000000000000000000000000000000000000000000000000000000000a0000000000000000000000007a58c0be72be218b41c608b7fe7c5bb630736c7100000000000000...
区块链原理——区块链概念
区块链的基本概念基本定义 从字面上理解,区块链就是由多个记录数据的区块构成的链式数据结构。 从技术角度来看,区块链是一种基于P2P网络架构的分布式账本技术系统: 以“块-链”式数据结构来验证与存储账本数据 使用密码学方法保证数据传输和访问的安全 从应用角度来看,区块链是一种新型的无中介陌生人信任服务应用支撑平台系统。 面向由陌生主体构成的开放网络环境 提供分布式账本记账服务 特点 去/弱中心化 可溯源 不可篡改 数字价值唯一性(采用共识机制和密码学方法实现) 智能合约 开放性 去信任 类型 公有链 公有链(Public Blockchain),任何人(任何个体与组织)都可以参与区块链数据的维护和读取,数据完全开放透明,免费开放 目前全球最有影响力的公有链是比特币和以太坊系统。 联盟链 联盟链(Consortium Blockchain),联盟链即区块链共识建立的范围及公共账本的公开对象为有限主体,如行业联盟成员之间,联盟成员平等参与区块链网络构建、公共账本创建与维护。 联盟链系统一般都需要严格的身份认证和权限管理,节点的数量在一定时间段内也是确定的...
solidity基础002
关键词:constructor&Modifier event 继承 接口 异常 重载 库合约 引用 回调 构造函数constructor和修饰器Modifierconstructor 定义:是一种特殊函数 每个合约可以定义一个,并且在部署合约时自动运行一次。 可用于初始化合约参数: 123456789101112131415161718// SPDX-License-Identifier: MITpragma solidity ^0.8.0;contract MyToken { string public name; string public symbol; uint256 public totalSupply; address public owner; //带参数的构造函数用于初始化状态变量 constructor(string memory _name, string memory _symbol, uint256 _initialSupply) { name = _name; ...
区块链安全基础二
四.数字签名与认证技术消息摘要算法:消息摘要是保证明文无法篡改、完整性的一种算法,消息摘要不是加密明文,也不是加密算法 无论输入的消息有多长,计算出来的消息摘要的长度总是固定的。 消息摘要看起来是“随机的”。 一般地,只要输入的消息不同,对其进行摘要以后产生的摘要消息也必不相同 消息摘要函数是无陷门的单向函数,即只能进行正向的消息摘要而无法从摘要中恢复出任何的消息 好的摘要算法,没有人能从中找到“碰撞”,虽然“碰撞”是肯定存在的。 Hash函数:Hash函数特点:(令h表示哈希函数,h满足以下条件) 输入可以是任意长度的消息或文件M; 输出长度是固定的; 给定h和M,计算h(M)是容易的; 给定h的描述,找两个不同的消息M1和M2,使得h(M1)=h(M2)在计算上是不可行的。 Hash函数的安全性:在现有的计算资源下,找到一个碰撞是不可能的。 Hash函数在网络安全应用中,不仅能用于保护消息或文件的完整性,而且也能用作密码信息的安全存储。 主要Hash算法有MD2、MD4、MD5、SHA。 其中,MD5能产生128比特长度的哈希值,它的使用广泛,常用于网...
solidity基础001
关键词:变量 数值类型 函数 数组 印射仅个人学习使用(WTF学习笔记) 数值类型初始值bytes1 是固定大小的字节类型,表示一个 1 字节的值(8 位)。它的初始值(默认值)是 0x00,即所有位都为 0。 具体解释: 在 Solidity 中,任何未赋值的变量都会有一个默认值。对于 bytes1 类型,它的默认值是一个长度为 1 字节的值,所有的位都被初始化为 0,用十六进制表示为 0x00。 如果用二进制表示,它是 00000000。 值类型初始值 boolean: false string: “” int: 0 uint: 0 enum: 枚举中的第一个元素 address: 0x0000000000000000000000000000000000000000 (或 address(0)) function internal: 空白函数 external: 空白函数 引用类型初始值 映射mapping: 所有元素都为其默认值的mapping 结构体struct: 所有成员设为其默认值的结构体 数组array 动态数组: [] 静态数...
【学习笔记】渗透测试过程1
1. 设置网络环境 将 Kali 虚拟机和靶机的网络适配器改为桥接模式。 在 Kali 虚拟机和靶机相互 ping 通,确保网络连通性。 切换到 root 模式进行操作。 Nmap(用于信息收集 资产探测:ip存活、系统、软件、软件版本、端口) 扫描网段: 1nmap -sn 192.168.42.0/24 查看网段中存活的主机。 全面扫描靶机: 1nmap -A <靶机IP> 在本实验获取数据库端口(1433)。 判断系统类型: 1nmap -O <靶机IP> 在 running: 后面查看主机系统信息。 【图片2】 服务版本扫描(运行软件): 1nmap -sV <靶机IP> 端口扫描: 1nmap -p1-65535 (目标端口)<靶机IP> 端口 27689 测试:扫描出异常(unknown)端口,在浏览器访问 <靶机IP>:27689。 随机 IP 扫描: 1nmap -v -iR(随机) <数量> -Pn -p 80 如果对方开了防火墙——(报)filter...
区块链安全基础一
关键词:信息安全 网络安全 (非)对称加密 密钥管理技术一. 信息安全知识基础1.1 信息安全定义&特征1.1.1信息安全的定义: a. 信息系统的安全(也称实体安全,系统运行的安全) b. 特定信息体系的安全 系统中信息的安全(用户权限的限制,数据加密) 管理安全(对信息资源和系统运行的管理) 1.1.2信息安全的特征a. 保密性 b. 完整性 c. 可用性 d. 可控性 e. 可审查性 关于五种特征的解释:(1)保密性:保密性是指信息不泄漏给非授权的个人、实体和过程,或供其使用的特性。(2)完整性:完整性是指信息未经授权不能被修改、不被破坏、不被插入、不延迟、不乱序和不丢失的特性。对网络信息安全进行攻击其最终目的就是破坏信息的完整性。(3) 可用性:可用性是指合法用户访问并能按要求顺序使用信息的特性,即保证合法用户在需要时可以访问到信息及相关资产。(4)可控性:可控性是指授权机构对信息的内容及传播具有控制能力的特性,可以控制授权范围内的信息流向以及方式。(5)可审查性(抗抵赖性):在信息交流过程结束后,通信双方不能抵赖曾经做出的行为,也不能否认曾经接...
【学习笔记】简单网络结构的搭建/vlan配置
(重新粗糙存档一下,过程图基本都丢失了,仅用于个人学习笔记使用) 网络基础架构图 网络通信的原理 软件的使用 a. 关于拓扑图: 接入层交换机,汇聚层交换机 b.技术实现6要求 Vlan trunk 不同vlan间的通信(三层交换技术)交换机的基础命令/知识: vlan: 虚拟局域网 vlan trunk stp 链路聚合 hsrp(vrrp)——公司内部的网络系统 将pc1和pc2放入不同vlan可以实现隔离 (同一虚拟网之间的电脑可以通信,不同的不可通信) vlan范围: 1-4094 关于常见接口类型: 交换机常见接口类型:有Access和trunk Access用来接入终端,电脑,打印机,服务器 trunk用在交换机与交换机之间 trunk技术解决交换机之间传输vlan数据的问题 命令行敲错后,跳出卡顿:ctrl+shift+1 三种模式: Enable # Config Exit 退出 查看都在#模式中; 配置文件的查看:show run (running-config...