code随手记

Practice from here


  • 首页

  • 分类

  • 归档

  • 标签

  • 关于

  • 搜索
close

对称加密算法DES原理及实现

发表于 2018-06-26   |   分类于 加密算法   |     |   阅读次数

DES加密算法

DES加密算法,为对称加密算法中的一种。70年代初由IBM研发,后1977年被美国国家标准局采纳为数据加密标准,即DES全称的由来:Data Encryption Standard。对称加密算法,是相对于非对称加密算法而言的。两者区别在于,对称加密在加密和解密时使用同一密钥,而非对称加密在加密和解密时使用不同的密钥,即公钥和私钥。常见的DES、3DES、AES均为对称加密算法,而RSA、椭圆曲线加密算法,均为非对称加密算法。
 
  DES是以64比特的明文为一个单位来进行加密的,超过64比特的数据,要求按固定的64比特的大小分组,分组有很多模式,后续单独总结,暂时先介绍DES加密算法。DES使用的密钥长度为64比特,但由于每隔7个比特设置一个奇偶校验位,因此其密钥长度实际为56比特。奇偶校验为最简单的错误检测码,即根据一组二进制代码中1的个数是奇数或偶数来检测错误。
  

阅读全文 »

hash算法

发表于 2018-06-26   |   分类于 加密算法   |     |   阅读次数

什么是 hash 算法

散列方法的主要思想是根据结点的关键码值来确定其存储地址:以关键码值K为自变量,通过一定的函数关系h(K)(称为散列函数),计算出对应的函数值来,把这个值解释为结点的存储地址,将结点存入到此存储单元中。检索时,用同样的方法计算地址,然后到相应的单元里去取要找的结点。通过散列方法可以对结点进行快速检索。散列(hash,也称“哈希”)是一种重要的存储方式,也是一种常见的检索方法。

散列算法(Hash Algorithm),又称哈希算法,杂凑算法,是一种从任意文件中创造小的数字「指纹」的方法。与指纹一样,散列算法就是一种以较短的信息来保证文件唯一性的标志,这种标志与文件的每一个字节都相关,而且难以找到逆向规律。因此,当原有文件发生改变时,其标志值也会发生改变,从而告诉文件使用者当前的文件已经不是你所需求的文件。

Hash算法有什么特点

一个优秀的 hash 算法,将能实现:

  • 正向快速:给定明文和 hash 算法,在有限时间和有限资源内能计算出 hash 值。

  • 逆向困难:给定(若干) hash 值,在有限时间内很难(基本不可能)逆推出明文。

  • 输入敏感:原始输入信息修改一点信息,产生的 hash 值看起来应该都有很大不同。

  • 冲突避免:很难找到两段内容不同的明文,使得它们的 hash 值一致(发生冲突)。即对于任意两个不同的数据块,其hash值相同的可能性极小;对于一个给定的数据块,找到和它hash值相同的数据块极为困难。

但在不同的使用场景中,如数据结构和安全领域里,其中对某一些特点会有所侧重。

阅读全文 »

slice

发表于 2018-05-04   |   分类于 go   |     |   阅读次数

切片的几种常用操作,reslice, append, copy, delete, insert, 排序, 取最值等,这几种基本上可以解决日常开发的绝大部分的问题了。

slice声明和创建

slice 本身不是数组,它指向数组的底层
作为变长数组饿替代方案,可以关联底层数组的全部或者局部
可以直接创建,一般用make(), 也可以从底层数组获取生成
如果多个slice 指向相同的底层数组,一个值的改变会影响全部

阅读全文 »

字符串操作

发表于 2018-04-26   |   分类于 go   |     |   阅读次数

目录

本文列举关于字符串最常用的几个操作,都会举例说明

  • 字符串长度
  • 查找
  • 替换
  • 分割
  • 合并
  • 前缀或后缀
  • 截取
  • 删除
  • 插入
  • 编码转换
  • 转换数值类型
  • 大小写转换
  • Trim操作
  • ASCII 转换
  • 字符串重复几次
  • 字符或子串在字符串中首次出现的位置或最后一次出现的位置

字符串相关操作需要导入包strings

阅读全文 »
1…567…12
夜千寻墨

夜千寻墨

扫码关注微信公众号,及时获取文章更新

48 日志
10 分类
77 标签
RSS
GitHub Weibo 简书 instagram
© 2020 夜千寻墨
powered by Hexo
theme - Next
本站访客数人次 总访问量次