摘要算法

漫谈iOS程序的证书和签名机制

允我心安 提交于 2020-02-25 12:28:08
漫谈iOS程序的证书和签名机制 P_Chou 6 天前 发布 推荐 4 推荐 收藏 42 收藏, 2.9k 浏览 原文: 漫谈iOS程序的证书和签名机制 接触iOS开发半年,曾经也被这个主题坑的摸不着头脑,也在淘宝上买过企业证书签名这些服务,有大神都做了一个全自动的发布打包(不过此大神现在不卖企业证书了),甚是羡慕和崇拜。于是,花了一点时间去研究了一下iOS这套证书和签名机制,并撰文分享给需要的朋友。由于本人才疏学浅,多有遗漏或错误之处,还请大神多多指教。 非对称加密和摘要 非对称加密的特性和用法 非对称加密算法可能是世界上最重要的算法,它是当今电子商务等领域的基石。简而言之,非对称加密就是指加密密钥和解密密钥是不同的,而且加密密钥和解密密钥是成对出现。非对称加密又叫公钥加密,也就是说成对的密钥,其中一个是对外公开的,所有人都可以获得,称为公钥,而与之相对应的称为私钥,只有这对密钥的生成者才能拥有。公私钥具有以下重要特性: 对于一个私钥,有且只有一个与之对应的公钥。生成者负责生成私钥和公钥,并保存私钥,公开公钥 公钥是公开的,但不可能通过公钥反推出私钥,或者说极难反推,只能穷举,所以只要密钥足够长度,要通过穷举而得到私钥,几乎是不可能的 通过私钥加密的密文只能通过公钥解密,公钥加密的密文只有通过私钥解密 由于上述特性,非对称加密具有以下的典型用法: 对信息保密,防止中间人攻击

小程序 之使用HMACSHA1算法加密报文

狂风中的少年 提交于 2020-02-23 15:18:29
首先说说我们前端常用的加密技术, 我们常用的加密技术有:如MD5加密,base64加密 今天要说的是HMACSHA1加密技术 先介绍下什么是SHA1算法, 安全哈希算法(Secure Hash Algorithm)主要适用于数字签名标准 (Digital Signature Standard DSS)里面定义的数字签名算法(Digital Signature Algorithm DSA)。对于长度小于2^64位的消息,SHA1会产生一个160位的消息摘要。当接收到消息的时候,这个消息摘要可以用来验证数据的完整性。在传输的过程中,数据很可能会发生变化,那么这时候就会产生不同的消息摘要。 SHA1有如下特性:不可以从消息摘要中复原信息;两个不同的消息不会产生同样的消息摘要,(但会有1x10 ^ 48分之一的机率出现相同的消息摘要,一般使用时忽略)。   SHA-1是一种数据加密算法,该算法的思想是接收一段明文,然后以一种不可逆的方式将它转换成一段(通常更小)密文,也可以简单的理解为取一串输入码(称为预映射或信息),并把它们转化为长度较短、位数固定的输出序列即散列值(也称为信息摘要或信息认证代码)的过程。   单向散列函数的安全性在于其产生散列值的操作过程具有较强的单向性。如果在输入序列中嵌入密码,那么任何人在不知道密码的情况下都不能产生正确的散列值,从而保证了其安全性

网摘-HTTPS协议之通信加密过程分析

ぐ巨炮叔叔 提交于 2020-02-11 17:03:43
原文链接: https://www.jianshu.com/p/39ad3e40f7af 备份如下: HTTPS协议之通信加密过程分析 一、准备知识 在开始介绍前,需要首先了解一下消息摘要、数字签名、数字证书的知识 1、消息摘要 - Message Digest 消息摘要(Message Digest) ,又称数字摘要(Digital Digest)或数字指纹(Finger Print)。简单来说,消息摘要就是在消息数据上,执行一个单向的Hash函数,生成一个固定长度的Hash值,这个Hash值即是消息摘要,Hash算法有MD5,SHA。它有以下特征: 无论输入的消息有多长,计算出来的消息摘要的长度总是固定的。例如应用MD5算法摘要的消息有128个比特位,用SHA-1算法摘要的消息最终有160比特位的输出,SHA-1的变体可以产生192比特位和256比特位的消息摘要。一般认为,摘要的最终输出越长,该摘要算法就越安全。 消息摘要看起来是“随机的”。这些比特看上去是胡乱的杂凑在一起的。可以用大量的输入来检验其输出是否相同,一般,不同的输入会有不同的输出,而且输出的摘要消息可以通过随机性检验。但是,一个摘要并不是真正随机的,因为用相同的算法对相同的消息求两次摘要,其结果必然相同;而若是真正随机的,则无论如何都是无法重现的。因此消息摘要是“伪随机的”。 消息摘要函数是单向函数

注册与登录的加密算法

生来就可爱ヽ(ⅴ<●) 提交于 2020-02-08 10:22:43
算法目的 提供固定的 秘钥 和 明文 能够产生不同的密文摘要 hamc 算法 大概流程是 使用一个秘钥 对明文进行两次散列操作得到密文摘要 哈希(散列)函数 MD5 SHA1 SHA256 注册 向服务器请求一个随机的秘钥 把注册的密码进行 md5.hmac(hamc使用md5的散列函数来操作字符)加密 : md5.hmac(key,message) ==> 密文摘要(key : 秘钥 , message : 明文) : md5.hmac密文摘要 把摘要提交到服务器,同时服务器把 该 秘钥 和 md5.hmac密文摘要 持久化到数据库 登录 客户端向服务器请求秘钥(注册时候存储的秘钥) 在用户提交数据的时候对密码进行加密 : md5.hmac(key , pwd) ==> 子摘要 md5.hamc(key , (子摘要 + '当前提交时间')) ==> 总摘要 当服务器接收到总摘要消息的时候处理流程 : 取出 秘钥 key , 存储的密文摘要 pwdDigest 根据以下公式计算两段密文摘要 : md5.hamc(key , '当前提交时间' + pwdDigest) ==>目的摘要1 md5.hamc(key , '当前提交时间 + 1(分钟)' + pwdDigest) ==>目的摘要2 如果用户提交的 总摘要 == 目的摘要1 || 总摘要 == 目的摘要2 为密码正确

python3摘要算法md5

假如想象 提交于 2020-02-06 15:05:53
#!/usr/bin/env python # -*- coding: utf-8 -*- import hashlib def get_file_md5 ( file_name ) : """ 计算文件的md5 :param file_name: :return: """ m = hashlib . md5 ( ) #创建md5对象 with open ( file_name , 'rb' ) as fobj : while True : data = fobj . read ( 4096 ) if not data : break m . update ( data ) #更新md5对象 return m . hexdigest ( ) #返回md5对象 def get_str_md5 ( content ) : """ 计算字符串md5 :param content: :return: """ m = hashlib . md5 ( content ) #创建md5对象 return m . hexdigest ( ) 来源: CSDN 作者: python小师弟 链接: https://blog.csdn.net/weixin_45320875/article/details/104195205

Hash签名 (数字摘要算法)

ぐ巨炮叔叔 提交于 2020-01-29 21:11:55
一、什么是Hash签名? Hash签名是最主要的数字签名方法,也称之为数字摘要法(Digital Digest)或数字指纹法(Digital Finger Print)。数字摘要就是采用单项Hash函数将需要加密的明文“摘要”成一串固定长度(128位)的密文这一串密文又称为数字指纹,它有固定的长度,而且不同的明文摘要成密文,其结果总是不同的,而同样的明文其摘要必定一致。 二、数字签名和验证的文件传输过程如下: (1) 被发送文件用MD5编码加密产生128bit的数字摘要。 (2) 发送方用自己的私用 密钥 对摘要再加密,这就形成了数字签名。 (3) 将原文和加密的摘要同时传给对方。 (4) 对方用发送方的公共密钥对摘要解密,同时对收到的文件用MD5编码加密产生又一摘要。 (5) 将解密后的摘要和收到的文件在接收方重新加密产生的摘要相互对比。如两者一致,则说明传送过程中信息没有被破坏或篡改过。否则不然。 三、常见Hash算法 : MD2 MD4 MD5 HAVAL SHA 来源: https://www.cnblogs.com/naray/p/4191543.html

使用Python自动提取内容摘要

喜夏-厌秋 提交于 2020-01-27 19:04:51
https://www.biaodianfu.com/automatic-text-summarizer.html 利用计算机将大量的文本进行处理,产生简洁、精炼内容的过程就是文本摘要,人们可通过阅读摘要来把握文本主要内容,这不仅大大节省时间,更提高阅读效率。但人工摘要耗时又耗力,已不能满足日益增长的信息需求,因此借助计算机进行文本处理的自动文摘应运而生。近年来,自动摘要、信息检索、信息过滤、机器识别、等研究已成为了人们关注的热点。 自动摘要(Automatic Summarization)的方法主要有两种:Extraction和Abstraction。其中Extraction是抽取式自动文摘方法,通过提取文档中已存在的关键词,句子形成摘要;Abstraction是生成式自动文摘方法,通过建立抽象的语意表示,使用自然语言生成技术,形成摘要。由于自动摘要方法需要复杂的自然语言理解和生成技术支持,应用领域受限。,抽取式摘要成为现阶段主流,它也能在很大程度上满足人们对摘要的需求。 目前抽取式的主要方法: 基于统计:统计词频,位置等信息,计算句子权值,再简选取权值高的句子作为文摘,特点:简单易用,但对词句的使用大多仅停留在表面信息。 基于图模型:构建拓扑结构图,对词句进行排序。例如,TextRank/LexRank 基于潜在语义:使用主题模型,挖掘词句隐藏信息。例如,采用LDA,HMM

苹果企业签名—ios签名的算法形式

家住魔仙堡 提交于 2020-01-19 00:22:59
数字签名的作用是,通过在某个数据上做上标记,表示承认(签字)了这个数据,并发送给了其他人。 其他人可能知道这个数据已经被我认证了,数据没有被篡改。 我们需要首先用一种算法,算出原始数据的摘要,满足:(1)假如原始数据没有任何变化,那么计算出来的摘要值就都会变化。(2)摘要要短,这里最常用的算法就是MD5. 会生成一份非对称加密的公钥和私钥,私钥自己拿着,公钥公布出去。给一份数据算出摘要,给这个摘要用私钥加密,得到一份加密的数据,被称为原始数据,将他和原始数据一块发送给用户。 用户收到数据和签名以后,使用公钥解密得到摘要,用户用同样的算法计算原始数据到的摘要,对比计算出来的摘要和公钥解密签名得到的摘要是否相等,如果相等则表示这份数据中途没有被篡改过,如果篡改过的话,摘要会变化最简单的苹果签名。 实现这一要求的最简单和最直接的方法是苹果官员生成一对公钥和私钥。iOS内置一个公钥,私钥由苹果公司保存在后台。当我们的APP上传到App Store时,苹果后台用私钥对APP数据进行签名,ios系统下载这个APP以后,用公钥验证这个签名,加入签名正确,这个APP肯定就是由苹果后台认证的,并且也没有被修改过,同时也达到了苹果的需求,保证安装的每一个APP都是经过苹果官方允许的。 来源: CSDN 作者: iosiPhoneios 链接: https://blog.csdn.net

消息摘要算法实战

▼魔方 西西 提交于 2020-01-18 22:24:07
一 代码 package HashAlgorithm; import org.apache.commons.lang.StringUtils; import java.io.UnsupportedEncodingException; import java.math.BigInteger; import java.security.MessageDigest; import java.security.NoSuchAlgorithmException; /** * Copyright (C), 2020-2020, XXX有限公司 * FileName: HashAlgorithm * Author: cakin * Date: 2020/1/18 * Description: 消息摘要算法 */ public class HashAlgorithm { public static void main( String[] args ) { String testString; testString = getDigestResult("testString","SHA-512"); System.out.println(testString); // 返回512bit //

https的原理

强颜欢笑 提交于 2020-01-16 02:04:26
Http存在的问题   上过网的朋友都知道,网络是非常不安全的。尤其是公共场所很多免费的wifi,或许只是攻击者的一个诱饵。还有大家平时喜欢用的万能钥匙,等等。那我们平时上网可能会存在哪些风险呢?   1. 泄密,个人隐私、账户密码等信息可能会被盗取。   2. 篡改,收到的数据可能被第三方修改过,或被植入广告等。   3. 假冒,访问的站点非目标服务器站点。如域名欺骗、域名劫持、钓鱼网站等。   可能住你隔壁穿人字拖、说话都略显羞涩的小王,一到夜深人静的时候就开始偷窥你的一举一动!陪你一起看91某社区的电影还好,万一窃取了各购物网站或其他站点的登录信息就……是不是想想有些害怕呢!   为什么别人能获取你上网的数据呢?有过一定网络基础的朋友多少都对TCP/IP有些了解,对各种握手挥手早已背得滚瓜烂俗,对http协议也早了然于心。http是应用层的协议,位于TCP/IP参考模型的最上层。用户数据经过应用层、传输层、网络层、链路层的层层封装后经过物理层发送到目标机器。在这几层中,数据都没有经过加密处理,所以一旦别人获取到你的数据包,就能轻易的获取到数据的信息。   为了保护数据隐私,让数据不再“裸奔”。对需要传输的数据进行加密处理就很有必要了。目前而言,加密算法可以分两大类,一类是对称加密算法,还有一类是非对称加密算法。 对称加密   对称加密算法的加密和解密都是用 同一个密钥