1.HMAC 概念 HMAC(Hash-based Message Authentication Code)基于 hash 的消息验证码,是 安全通信中必要的组成部件. 主要是 防止消息被篡改,和对称加密一起保护数据通信的 完整性. 参考HMAC实现规范,基于的 Hash 算法可以是 md5,sha1,sha-2(sha256,sha385,sha512)等: 在不考虑 hash算法具体实现的情况下,其实现原理图如下: 1)密钥填充: 如果密钥比Hash函数的分组长度(block_size)要长…
消息认证包括两个目标 1消息完整性认证: 确保张三发给我的消息是完整的,在传输过程中没有被第三方篡改 2消息的来源认证: 确保这个数据是张三发给我的,而不是李四发给我的 第一个目标通常使用散列函数来达成 常见用例: 张三把要发送的数据通过散列函数比如md5提取数据的摘要,让后将摘要和数据一起发送给我     我接收到数据后将数据部分进行同样的md5散列方法,得到的摘要和收到的摘要做对比,如果     两个摘要相同,那证明这个数据是没有被篡改的 第二个目标通常使用密匙来达成 我们在回过头看一下上面…
需要将密钥发送到对方,对方用该密钥进行摘要处理,进行摘要验证. //初始化KeyGenerator KeyGenerator keyGenerator= KeyGenerator.getInstance("HmacMd5"); //出生密钥 SecretKey secretKey=KeyGenerator.generator(); //获得密钥 byte[] key=secretKey.getEncoded(); //还原,获得密钥 SecretKey seretKey= new Se…
三种Hash算法对比以及秒传原理 CRC (32/64)   MD5  Sha1 分5个点来说 1.校验值长度 2.校验值类别 3.安全级别 4.应用场景 1).校验值长度 CRC(32/64) 分别是4个字节和8个字节 MD5 16字节 所以长度为108位 sha1 20字节  160位长度 2)校验值类别 一般把CRC叫做校验码 md5和sha1叫做hash值或者散列值,从这里大概可以看出用处不同 3)安全级别 CRC<MD5<Sha1(当然sha1上面还有sha256或者sha512)…
腾讯官方通过 Tencent://Message/协议可以让QQ用户显示QQ/TM的在线状态发布在互联网上:并且点击 XXX  ,不用加好友也可以聊天 官方链接: http://is.qq.com/webpresence/code.shtml 具体代码:<a href="tencent://message/?uin=215555521&Site=JooIT.com&Menu=yes"> < img border="0" SRC='h…
腾讯官方通过 Tencent://Message/协议可以让QQ用户显示QQ/TM的在线状态发布在互联网上:并且点击 XXX  ,不用加好友也可以聊天 官方链接: http://is.qq.com/webpresence/code.shtml 具体代码:<a href="tencent://message/?uin=215555521&Site=JooIT.com&Menu=yes"> < img border="0" SRC='h…
密码学家工具箱中的6个重要的工具: 对称密码 公钥密码 单向散列函数 消息认证码 数字签名 伪随机数生成器 MAC能识别出篡改和伪装,也就是既可以确认消息的完整性,也可以进行认证. 消息认证码的输入包括任意长度的消息和一个发送者与接受者之间共享的密钥,它可以输出固定长度的数据,这个数据就是MAC. 消息认证码是一种与密钥相关联的单向散列函数. 消息认证码的应用实例 SWIFT(Society for Wordwide Interbank Financial Telecommunication,环…
汉明码实现原理 汉明码(Hamming Code)是广泛用于内存和磁盘纠错的编码.汉明码不仅可以用来检测转移数据时发生的错误,还可以用来修正错误.(要注意的是,汉明码只能发现和修正一位错误,对于两位或者两位以上的错误无法正确和发现).   汉明码的实现原则是在原来的数据的插入k位数据作为校验位,把原来的N为数据变为m(m = n +k)位编码.其中编码时要满足以下原则: 2^k - 1 >= m 其中(m = n + k) 这就是Hamming不等式,汉明码规定,我们所得到的m位编码的2^k (…
题意:你在一家公司工作\(t\)天,负责给饮水机灌水,饮水机最初有\(k\)升水,水的范围必须要在\([l,r]\)内,同事每天白天都会喝\(x\)升水,你在每天大清早可以给饮水机灌\(y\)升水,问你在公司工作的这几天内,饮水机会不会发生故障. 题解:假如\(x>=y\),那么,我们贪心的思路一定是每天让水减的尽可能少,所以每天都要加水,这里要注意第一天的情况,如果第一天加水后大于\(r\)话,那么第一天大清早是不能加水的,这里我们要特判一下,接下来用if判断就行了. 假如\(x < y\)…