当前位置: 首页 > news >正文

电脑网站建设一级A做爰片安全网站

电脑网站建设,一级A做爰片安全网站,个人网站用备案吗,做公司网站要多久文章目录 简述图解密码学相关密码词汇和缩写介绍密码技术介绍RSA 非对称加密介绍什么是非对称加密#xff08;公钥密码#xff09;#xff1f;RAS 加解密算法公式 AES 下的模式介绍 #xff08;分组密码 || 对称密码模式介绍#xff09;详解模式分类分组密码模式比较表ECB… 文章目录 简述图解密码学相关密码词汇和缩写介绍密码技术介绍RSA 非对称加密介绍什么是非对称加密公钥密码RAS 加解密算法公式 AES 下的模式介绍 分组密码 || 对称密码模式介绍详解模式分类分组密码模式比较表ECB 模式CBC 模式CFB模式流密码[^2]CFB 模式与流密码 OFB 模式CFB 模式与 OFB 模式的对比CTR 模式 密码的安全常识单向散列函数 one-way hash function单向散列函数的性质单向散列函数的实际应用SHA-3 Keccak 介绍海绵结构 sponge constructionKeccak 内部状态 函数 Keccak-f [b]目前应该使用哪些单向散列函数呢 密码技术的互相关系各种密码技术的对比 简述 阅读完本作后 惊艳于作者的出色的文笔生动形象的举例清晰明了的图例 让我这类的初学者系统性的了解 密码技术 密码技术的互相关系 密码的常识 以及对应的使用落地场景 使之受益匪浅 个人深知我的记忆是有限存储故写下本篇文章用于归纳记忆该作品内容 该文章是对于本书的理解进行归纳填充 该体系对于我来讲更便于记忆如有错误和指导不胜感激 图解密码学 相关密码词汇和缩写介绍 针对本文本书常见的词汇的补充 力争可以在日常交谈中关于名词不会出现蒙蔽的情况 单词音标 (美式)意思备注cryptography [krɪpˈtɑːɡrəfi] 密码学encrypt [ɪnˈkrɪpt] 加密跟 decrypt 解密 配套decrypt [diːˈkrɪpt] 解密plaintext[ˈpleɪn tekst]明文ciphertext[ˈsaɪfər tekst]密文confidentiality[ˌkɑːnfɪˌdenʃiˈæləti] 机密性运用密码技术保证消息私钥的机密性cryptanalysis[ˌkrɪptəˈnæləsɪs]密码破译;密码分析接收者以外的其他人试图将密文还原为明文则称为密码破译cryptanalyst[krip’tænəlist]破译者进行破译的人称为破译者 破译者并不一定是坏人algorithm[ˈælɡərɪðəm]算法用于解决复杂问题的步骤通常称为算法 从明文 → 密文的加密步骤称为 ”加密算法“ 则对应解密操作称为 ”解密算犯法“ 将二者合在一起统称 ”密码算法“authentication[ɔːˌθentɪˈkeɪʃn] 认证digital[ˈdɪdʒɪtl] 数字digital signature 即为 数字签名signature[ˈsɪɡnətʃər]签名autograph 也称签名 但并不适用从语义上 signature 带有 ”签署“ 之意的签名的意思initialization [ɪˌnɪʃələˈzeɪʃn]初始化verify[ˈverɪfaɪ]验证malicious[məˈlɪʃəs] 恶意的在日常通信过程中存在多种角色 其中主公攻击者介入发送者和接收者之间通信过程进行阻碍通信或篡改密文的活动 一般称为 Mallorysalt[sɔːlt] 盐通过伪随机数生成器产生的随机值randomness [ˈrændəmnəs] 随机性unpredictability [ˌʌnprɪˌdɪktəˈbɪləti]不可预测性un否定 - pre 之前 - dict说 - ability 可能性revocation[ˌrevəˈkeɪʃn]取消撤回废弃certification[ˌsɜːrtɪfɪˈkeɪʃn]证明 资质证书Certification Pracice statement 认证业务准则practice[ˈpræktɪs]实践练习statement[ˈsteɪtmənt]报告collision[kəˈlɪʒn]碰撞sponge[spʌndʒ]海绵construction[kənˈstrʌkʃn] 建造建筑创立构建构造结构capacity[kəˈpæsəti]能力才能容积容纳能力 缩写全称意思备注MACMessage Authentication Code消息认证码消息认证码的输入包括任意长度的消息和一个发送者与接收者之间共享的密钥它可以输出固定长度的数据这个数据称为MAC值。这个绝非 MAC地址 更不是指 MAC 电脑MDMessage Digest消息摘要通常组合表达 MD4, MD5 当前 MD4, MD5 均不适用于加密处理 建议适用 SHA-256 SHA-384,SHA-512SHA-3Secure Hash Algorithm-3单向散列函数算法12年确定将 Keccak 算法作为 SHA.3 的标准NISTNational Institute of Standards and Techology美国国家标准技术研究所DES, AES, SHA-3 都是由该标准化机构进行推出SWIFTSociety for Worldwide Interbank Financial Telecommunication环球银行金融电信协会1973年成立为国际银行的交易报价护航 08年发展到208个成员国银行与银行之前是通过 SWIFT 来传递交易消息 而保证消息的完整性以及对消息进行验证 SWIFT 中适用了消息认证码RNGRandom Number Generator随机数生成器硬件生成的随机数列是根据传感器收集的热量、声音的变化等事实上无法预测和重现的自然现象信息来生产的才可以称为 ”随机数生成器“PRNGPseudo Random Number Generator伪随机数生成器依靠软件生成的随机数DESData Encryption Standard1977年美国联邦信息处理标准(FIPS )中所釆用的一种 对称密码(FIPS 46-3 )AESAdvanced Encryption Standard对称密码算法2000年最终选择 Rijndael 的堆成密码算法Rijndael由比利时密码学家Joan Daemen和Vincent Rijmen设计的分组密码算法于 2000年被选为新一代的标准密码算法——AESECBElectronic Code Book mode电子密码本模式分组密码的主要模式之一, 不建议使用CBCCipher Block Chaining mode密码分组链接模式分组密码的主要模式之一CFBCipher FeedBack mode密码反馈模式OFBOutput FeedBack mode输出反馈模式CTRCounTeR mode计数器模式IVInitialization Vector初始化向量在 CBC 模式下因为需要跟前一个密文进行 XOR 处理首次的时候不存在因此需要生成该值切记该值为随机值CRLCertificate Revocation List证书作废清单CPSCertification Practice Statement认证业务准则 密码技术介绍 RSA 非对称加密介绍 非对称加密公钥加密技术可以人为是最伟大的发明 利用优雅的数学公式就可以实现让人头疼的密钥配送问题 牛逼 什么是非对称加密公钥密码 公钥密码 public-key cryptography 中密钥分为加密密钥和解密密钥 发送者用加密密钥对消息进行加密接收者用解密密钥进行解密。通过上述行为我们可以发现 发送者只需要加密密钥接收者只需要解密密钥解密密钥不可以被窃听者获取加密密钥被窃听者获取也没有问题 而解密密钥从一开始就是由接收者自己报关的 只是把加密的密钥发送给发送者故完美解决了密钥配送问题。 其中公钥和私钥是一一对应的 一对公钥和私钥称为 密钥对 key pair 由公钥进行加密密文必须使用该公钥配对的私钥才能进行解密 而确保实现上述功能是依赖于二者具备非常密切的关系 数学上的关系 因此公钥和密钥不能单独生成 RAS 加解密算法公式 RSA 加密 公钥是 {E、N} 密 文 明 文 E m o d N 密文 明文^E mod N 密文明文EmodN RSA 解密 明 文 密 文 D M o d N 明文 密文^D Mod N 明文密文DModN AES 下的模式介绍 分组密码 || 对称密码模式介绍 AES 属于分组密码 常规的密码算法分为分组密码和流密码两种 分组密码 block cipher每次只能加密固定长度的一块数据的一类密码算法如需要加密任意长度的明文则就需要对分组密码进行分组迭代其中 一块 称为分组(block) , 一个分组的比特数称为 分组长度(block length) 1 , 而分组密码的迭代方法就称为分组密码的 ”模式” 。 详解模式分类 ECB模式: Electronic Code Book mode (电子密码本模式)CBC模式: Cipher Block Chaining mode (密码分组链接模式)CFB模式: Cipher FeedBack mode (密码反馈模式)OFB模式: Output FeedBack mode (输出反馈模式)CTR模式: CounTeR mode (计数器模式) 分组密码模式比较表 ECB 模式 将明文分组加密后的结果直接变成密码分组(图4-2) 从上图可以看出明文的分组都是各自独立进行加密和解密, 攻击者(Mallory) 如果可以改变密文的分组顺序,即可 无需破解密码就能操控明文 。 CBC 模式 首先将明文分组与前一个密文分组进行 XOR 运算 然后在进行加密图4-3 与 ECB 的区别是 CBC 在加密明文前进行了一次 XOR 这个时候要注意加密第一个明文的分组的时候因为不存在 “前一个密文分组” 因此需要事先准备一个长度为一个分组的比特序列来代替 “前一个密文分组”这个比特序列称为 初始化向量 Initialization Vector 一般来说每次加密的都会随机产生一个不同的比特序列作为初始化向量 CFB模式流密码2 前一个密文分组会被送回到密码算法的输入端 所为反馈这里是指返回输入端的意思图4-9。 因为明文→密文是用 XOR 处理的 因而可能遭受重放攻击relplay attack即截取用户信息伪造尾部信息234 就可以实现34信息成功篡改 2信息无法识别 需要防止该问题需要引入 消息认证码确保是 2 无法识别是因为通信错误还是人为供给导致的 CFB 模式与流密码 CFB模式是通过 明文分组 与 密码算法的输出 进行 XOR 运算来生成 密文分组的这里的 密码算法输出相当于 1次性密码本的随机比特序列 该序列称为 密钥流key stream 。在 CFB 模式中 密码算法就相当于生成密钥流的伪随机数生成器 而初始化向量就相当于伪随机数生成器的 “种子”。 故在 CFB 模式中明文的数据可以被逐比特加密因此我们可以将 CFB 模式看作是一种 使用分组密码来实现流密码 的的方式。 OFB 模式 密码算法的输出会反馈到免密算法的输入中 OFB模式并不是通过密码算法对明文直接进行加密的而是通过 “明文分组” 和 “密码算法的输出” 进行 XOR 来产生 “密码分组” 这点 OFB 与 CFB 模式相似。 CFB 模式与 OFB 模式的对比 OFB 模式和 CFB模式的区别仅仅在密码算法输入。 CFB 模式密码算法的输入是前一个密文分组也就是将密文分组反馈到密码算法中故称为 “密码反馈模式”。 OFB 模式中密码算法的输入则是密码算法的前一个输出也就是将输出的反馈给密码算法 故称为 “输出反馈模式” CTR 模式 一种通过逐次累加的计数器进行加密来生成的密钥流的流密码。 CTR 模式中 每个分组对应一个逐次累加的计数器并通过对计数器进行极爱来生成密钥流。也就是说最终的密文分组是通过将计数器加密得到的比特序列与明文分组进行 XOR 而得到的。 密码的安全常识 不要使用保密的密码算法使用低强度的密码比不进行任何加密更危险任何密码总有一天会被破解密码只是信息安全的一部分 单向散列函数 one-way hash function 它又称为 消息摘要函数message digest function、哈希函数 或则杂凑函数。 它有一个输入和输出 其中输入的称为 消息 又称 原像pre-image 输出称为 散列值 又称 消息摘要message digest) 或者 指纹(fingerprint) 是可以确保消息的完整性的一种算法 单向散列函数的性质 根据任意长度的消息计算出固定长度的散列值 常见的 MD5、SHA-256能快速计算出散列值消息不同散列值不同 即消息中哪怕只有 1 比特的改变 也必须有很高概率产生不同的散列值若两个不同的消息产生同一个散列值的情况称为 碰撞collision 难以发现的碰撞的性质称为 抗碰撞性 collision resistance 故 单向散列函数 都要具备该特性3。具备单向性 即无法通过散列值反算消息的性质。(举例将玻璃砸碎很容易 却无法将碎片还原成完整的玻璃) 单向散列函数的实际应用 检测软件是否被篡改基于口令加密 Password Based Encryption, PBE 将口令和盐salt 通过伪随机生成器产生随机值混合后计算其散列值然后将这个散列值用作加密的密钥。消息认证码可以检测并防止通信过程中的错误、篡改以及伪装。数字签名 因为往往数字签名的处理耗时非常长 往往需要通过单项散列函数计算出消息的散列值然后针对散列值施加数字签名。伪随机数生成器密码技术中所使用的随机数需要具备 事实上不可能根据过去的随机数列来预测未来的随机数数列的性质 需要具备不可预测性 故可以使用单向散列函数的单向性。一次性口令 经常被用于服务器对客户端的合法性认证。 SHA-3 Keccak 介绍 Keccak读作 ket-chak 是一种被选定 SHA-3 标准的单项散列函数算法。 Keccak 可以生成任意长度的散列值 但是为了兼容 SHA-2 的散列长度 SHA-3 标准中共规定 SHA3-224、SHA-3-256、SHA-3-384、SHA-3-512 四个版本。 在输入长度上限方面 SHA-2为 2 128 - 1。 海绵结构 sponge construction Keccak 的海绵结构 输入的数据进行填充之后 要经过 吸收阶段absorbing phase 和 挤出阶段squeezing phase 最终生成输出的散列值。 吸收阶段的流程如下 将经过填充的输入消息按照每 r 个比特为一个分组分割成若干个输入分组首先将 “内部状态的 r 个比特” 与 “输入分组 1” 进行 XOR 将其结果作为 函数 f 的输入值 然后将 “函数 f 的输出值 r 个比特” 与 “输入分组 2” 进行 XOR 将其结果再次作为 “函数 f 的输入值”反复执行上述步骤直到到达最后一个输入分组待所有输入分组处理完成后结束吸收阶段进入挤出阶段 函数 f 的作用是将输入的数据进行复杂的搅拌操作并输出结果 输入和输出的的长度均为 b r c 个比特 其操作对象是长度 b r c个比特的内部状态 内部状态的初始值为 0. 也就是说通过反复将输入分组的内容搅拌进来 整个消息就会被一点一点 “吸收” 到海绵结构的内部状态中 就好像水分被一点一点的海绵内部一样。 每次被吸收的输入分组长度为 r 个比特 因此 r 被称为 比特率 bit rate. 从 图7-10 我们可以看出 函数 f 的输入长度不是 r 个比特 而是 r c 个比特 请大家注意这点 这意味内部状态中有 c 个比特是不受输入分组内容的直接影响的但会通过函数 f 收到间接影响。 这里的 c 被称为容量 capacity 吸收阶段结束后便进入 挤出阶段 流程如下 首先 将 “函数 f 的输出值中的 r 个比特” 保存为 “输出分组 1” 并将整个输出值 r c 个比特 在输入到函数 f 中然后 将 “函数 f 的输出值中的 r 个比特” 保存为 “输出分组 2”, 并将整个输出值 (r c个比特) 在输入到函数 f 中反复执行上述步骤, 直到获得所需长度的输出数据 无论是吸收阶段还是基础阶段,函数 f 的逻辑本身是完全相同的,每执行一次函数 f , 海绵结构的内部状态都会被搅拌一次. 挤出阶段中实际上执行的是 对内部状态进行搅拌并产生输出分组(r个比特)的操作, 也就是以比特率( r 个比特)为单位, 将海绵结构的内部状态中的数据一点一点地 “挤” 出来,就像从海绵里面把水分挤出来一样. 在挤出阶段中,内部状态 r c 个比特中的容量 (c 个比特)部分是不会直接进入输出分组的, 这部分数据只会通过函数 f 间接影响输出的内容. 因此, 容量 c 的意义在防止将输入消息中的一些特征泄露出去. Keccak 内部状态 Keccak 的内部状态是一个三位的比特数组, 如图7-12所示, 图中每个小方块代表1个比特, b 个小方块按照 55z的方式组合起来,就成为一个沿 z 轴延申的立方体. 我们将 x, y, z 三个维度的内部状态整体称为 state, state 共有 b个 比特. 如果我们只是关注内部状态的两个维度, 可以将 xz 平面称为 plane, 将 xy 平面称为 slice, 将 yz 平面称为 sheet (图7-13) 同样, 如果我们只关注其中一个维度, 可以将 x 轴称为 row, 将 y 轴沉稳给 column, 将 z 轴 称为 lane. 因此, 我们可以将 state 堪称是由 5 * 5 条 lane 构成的, 也可以看成 由于 lane 的长度相同数量的 slice 堆叠而成的. Keccak 的本质就是实现一个能够将上述结构的 state 进行有效搅拌的函数 f, 这与分组密码设计中的搅拌过程非常相似。此外 由于内部状态可以代表整个处理过程中的全部中间状态 因此有利于节省内存。 Keccak 用到了很多比特单位的运算 因此被认为可以有效抵御针对字节单位的攻击。 函数 Keccak-f [b] Keccak 的函数 f 实际上应该叫做 Keccak-f [b] 从这个名称可以看出 这个函数带有一个参数 b 即内部状态的比特长度 这里的参数 b 称为宽度width。 根据 Keccak 的设计规格 宽度 b 可以取 25、50、100、200、400、800、1600 七种值 SHA-3采用的是其中最大宽度 即 b 1600。 宽度 b 的7种取值的排列看起来比较怪其实是25的整数倍 即 25的20 ~ 26倍 根据图7-13 可知一片 slice 的大小为 5* 5 25比特因此 b / 25 就相当于 slice 的片数(即 lane 的长度)。SHA-3的内部状态大小为 b 5* 5* 64 1600个比特 。 由此可见 在 Keccak 中通过改变宽度 b 就可以改变内部状态的比特长度。 但无论如何改变 slice 的大小依然是 5 * 5 改变的只是 lane 的长度而已因此 Keccak 的宽度的变化并不会影响其基本结构。 Keccak 的这种结构称为 套娃结构这个名字取自著名的俄罗斯套娃 每个哇哇的形状都是相同的只是大小不同而已。 利用该套娃结构我们可以很容易地制作一个缩水版 Keccak 模型并尝试对其摩羯以便于对该算法的强度进行研究。 Keccak-f[b] 中的每一轮包含5个步骤θ西塔、ρ 柔、π(派)、χ(凯)、ι(伊欧塔), 总共循环 12 2ℓ 轮4。具体到 SHA-3 中所使用的 Keccak-f [1600] 函数其循环轮数为 24 轮5。 步骤 θ 图7-14 所示对其中 1 个比特应用步骤 θ 时情形 这一步的操作是将位置不同的两个 column中各自 5个比特通过 XOR 运算加起来图中 ∑ 标记然后在和置换目标比特求 XOR 并覆盖目标比特。 步骤 ρ 这一步是操作沿 z 轴lane 方向进行比特平移。 步骤 π 对其中 1片 slice 应用步骤 π \pi π 的情形 实际上整条 lane 上所有的 slice 都会被执行同样的比特移动操作。 步骤 χ \chi χ 下图所示 对其中 1个 row 应用步骤 χ \chi χ 的情形。 这里我们使用了一些逻辑电路的符号其中 ▽ 代表对输入比特取反 即 NOT ”半椭圆“找不到符号代表仅当两个输入比特均为 1 时则输出 1 即 AND。 步骤 ι 是用一个固定轮常数对整个 state 的所有比特进行 XOR 运算 目的是让内部状态具备非对称性。 根据《散列函数 SHA-224、SHA-521/224、SHA-512/256 和 SHA-3Keccak的实现评估》除了步骤 θ 中奇偶性∑标记以及步骤 χ \chi χ 中 NOT 和 AND 以外 其余的操作仅通过硬件电路就可以实现说明在硬件上的适应性会很好具备通用特性。 目前应该使用哪些单向散列函数呢 算法名称是否建议使用说明MD5不建议MD5 是不安全的MD5的强抗碰撞性已被攻破 04年王小云团队就已提出针对 MD5、SHA-() 等散列函数的碰撞攻击算法SHA-1不建议2005年针对 SHA-1 的碰撞攻击算法及范例由山东大学王小云教授团队提出SHA-256、SHA-284、 SHA512统称 SHA-2建议不过因为它的消息长度存在上限如今 SHA-1 强碰撞性被攻破也就是说采用MD结构的后续可能存在风险只是它的值很大风险较低SHA-3建议 ps 我们不应该使用任何自制算法。 密码技术的互相关系 密码的相关技术往往都是解决特定问题的 而现实世界中遇到的问题是多维度 因此更多的时候是需要进行组合使用才能有效的保护信息的安全 以下是当前书籍上的相关密码简介。 对称密码 是一种用相同密钥来进行加密和解密的技术可以确保消息的机密性但要解决密钥配送问题中间人攻击伪装风险。 非对称密码 是一种用不同密码来进行加密和解密的技术, 在确保消息机密性的基础上解决了密码配送问题泄露问题但因此带来的问题则是 公钥机密的速度很慢同时也是存在中间人攻击伪装风险。 单向散列函数 是一种将长消息转换为短散列值的技术用于确保消息的完整性。它还可以作为消息认证码、数字签名以及伪随机数生成器等技术的组成元素来使用。 消息认证码 是一种能够识别通信对象发送的消息是否被篡改的认证技术用于验证消息的完整性以及消息认证。 消息认证码算法中最常用的是单向散列函数的 HMAC它的构成不依赖某一种具体的单向散列函数算法。消息认证码对通信对象进行认证但是无法对第三方进行认证此外它也无法防止否认消息认证码也可以用于实现认证加密 数字签名 是一种能够对第三方进行消息认证可以防止通信对象做出否认的认证技术。 数字签名的算法包括 RSA 、EIGamal、 DSA、 椭圆曲线DSA、 爱德华兹曲线DSA 等。公钥基础设置PKI使用的证书就是对公钥加上认证机构的数字签名所构成的要验证公钥的数字签名需要通过某种途径获取认证机构的自身的合法公钥。 伪随机数生成器 是一种能够生成具备不可预测性的比特序列的技术由密码和单向散列函数等技术构成伪随机数生成器用于生成密钥初始化向量和 nonce 等。 各种密码技术的对比 AES 的分组长度为 128比特, 因此 AES 一次可加密128比特的明文,并声称128比特的密文; ↩︎ CFB、OFB、CTR 均可将 分组密码当流密码使用。 流密码是不需要将明文填充到长度是分组长度的整数倍且可实时操作。所以待发送的字符流任何一个字符都可以用面向字符的流密码加密后立即发送。流密码的特质密文与明文等长。 ↩︎ 抗碰撞性需要具备 弱抗碰撞性、强抗碰撞性 这两种特性其中当定某条消息的散列值 单向散列函数必须确保要找到和该条消息具备相同散列值的另外一条消息是非常困难的 这一性质称为弱抗碰撞性 而 强抗碰撞性 是指 要找到散列值相同的两条不同的消息是非常困难的 在这里散列值可以是任意值 ↩︎ Keccak 设计规格中规定 2 ℓ b 25 \ 2^{ℓ}\frac{b}{25}  2ℓ25b​ ↩︎ ∵ b 12 2 ℓ 2 ℓ b 25 b 1600 ∴ ℓ 1600 ÷ 25 2 , ℓ 6 ∴ b 24 \ ∵ b122ℓ 2^{ℓ}\frac{b}{25}b1600 ∴ℓ\sqrt[2]{1600 \div 25}, ℓ6 ∴b24  ∵b122ℓ2ℓ25b​b1600∴ℓ21600÷25 ​,ℓ6∴b24 ↩︎
http://www.dnsts.com.cn/news/238945.html

相关文章:

  • 网站内容转载影响网站排名的因素
  • 网站开发如何引用函数wordpress 非80端口
  • 台州专业网站设计系统对运营网站有什么见解
  • 营销型网站建设极速建站龙岩
  • 在网站上做漂浮获取客户信息的渠道有哪些
  • 网站正常打开速度慢wordpress上传设置
  • 河南郑州网站制作公司网站打开速度与服务器
  • 网站建设可以在家做吗网站开发实训报告总结
  • 无锡网站制作推广房地产新闻最新消息今天
  • 营销网站制作音乐网站建站
  • 宁波网站快速优化seo加盟代理
  • 网和网站的区别网站开发合同样本
  • 西安有哪些做网站的公司医药o2o平台有哪些
  • 自建电商网站有哪些服务好的赣州网站建设
  • 广州有专做网站网站建设赶集网
  • 清爽网站松岗做网站哪家便宜
  • 弋阳网站建设制作静态网站建设的流程
  • 做一个网站APP价格wordpress 知笔墨
  • 彩票网站 模块一个网站需要多少钱
  • 赣榆网站建设xxiaoseo湛江专业雷剧全集
  • 做网站要注册公司么烟台企业展厅设计公司
  • 永州做网站费用广州可以做票务商城的网站公司
  • 北京如何优化网站金牛区建设和交通局网站
  • 规划建立一个网站 项目用系统建购物网站
  • 仿wordpress站济南做网络安全的公司
  • 北京正规网站建设公司重庆提供行业网站建站报价
  • 洛阳建站优化教程公司介绍ppt
  • 摄影师作品网站益阳一站式网站建设公司
  • 网站开发主要使用的技术网站如何做品牌营销
  • 网站构建免费google推广公司