摘要算法

solr高亮设置以及摘要

孤街醉人 提交于 2020-04-06 02:41:12
高亮显示 Java代码 public SolrDocumentList query(String str) { SolrQuery query = new SolrQuery(str); //设置高亮,以下两种方式都行(相当于开启高亮功能) //query.setHighlight(true); query.setParam( "hl" , "true" ); //highlighting //设置高亮显示的请求,高亮显示的内容由该参数决定,但是返回结果还是由SolrQuery决定 //query.setParam("hl.q", "email:zhang@ppstream.com"); /* * 那些字段高亮显示,可以用空格或者逗号分隔(有一个域的时候正常,两个及以上没测试通过) * 老版本使用query.addHighlightField("name");query.addHighlightField("description");给多个字段开启高亮功能 */ query.setParam( "hl.fl" , "name" ); //高亮显示字段前后添加html代码 query.setHighlightSimplePre( "<font color=\"red\">" ); query.setHighlightSimplePost( "</font>" );

信息安全

萝らか妹 提交于 2020-03-31 09:05:21
1, 信息系统安全属性 最小授权原则:我们再给某人授权时,为了保证他的工作能够顺利进行,不要给他过多的授权 反暴露:例:为了防止别人破解我们的数据库,就把数据库命名成非标准的扩展名的数据库。 数据库的一个安全隐患,一旦有人知道数据库的位置,文件名,就可以把数据库给当下来,因此把数据库的扩展名设置成不规则的扩展名,文件名也是很长很奇怪的名字 信息加密:及时被截获,也无法获得原始信息 物理保密:发送时加密,接收时自动解密。 完整性:信息从一个节点发送到另一个节点信息不可以发生改变【防止他人截获信息,篡改信息】 可以使用安全协议,或校验码来 可用性:合法用户可以使用合法的方式来用到相应的资源。【DDOS攻击破坏的就是服务器的可用性】 不可抵赖性主要手段就是数字签名,签名可以识别发送者的身份,发送者不可抵赖。 2, 对称加密技术 在加密和解密的时候使用的密钥一样 (1) ,非对称的加密技术 公钥加密,私钥解密。或者,私钥加密,公钥解密。 (2) ,我们使用的RAR 的压缩包,pdf ,word 都可以加密码,他们都属于对称的加密技术【加密解密密钥相同】 (3) ,常见的对称技术加密算法 DES算法加密过程采用的手段主要是替换+移位的方式 替换:会有个密码表,保存了明文密文的对应关系,直接查表,翻译。【很普遍】 移位:一旦移位就会导致字母跟原来的情况完全不一样【常用】

Python学习笔记(十四)—hashlib模块

天涯浪子 提交于 2020-03-25 08:48:23
hashlib模块,主要用于加密相关的操作,在python3的版本里,代替了md5和sha模块。Python的hashlib提供了常见的摘要算法,主要提供 SHA1, SHA224, SHA256, SHA384, SHA512 ,MD5 算法。 什么是摘要算法呢?摘要算法又称哈希算法、散列算法。它通过一个函数,把任意长度的数据转换为一个长度固定的数据串(通常用16进制的字符串表示)。 举例说明: 你写了一篇文章,内容是一个字符串 'how to use python hashlib - by Michael' ,并附上这篇文章的摘要是 '2d73d4f15c0db7f5ecb321b6a65e5d6d' 。如果有人篡改了你的文章,并发表为 'how to use python hashlib - by Bob' ,你可以一下子指出Bob篡改了你的文章,因为根据 'how to use python hashlib - by Bob' 计算出的摘要不同于原始文章的摘要。 可见,摘要算法就是通过摘要函数 f() 对任意长度的数据 data 计算出固定长度的摘要 digest ,目的是为了发现原始数据是否被人篡改过。 摘要算法之所以能指出数据是否被篡改过,就是因为摘要函数是一个单向函数,计算 f(data) 很容易,但通过 digest 反推 data 却非常困难。而且

JAVA加解密 -- 消息摘要算法

我怕爱的太早我们不能终老 提交于 2020-03-24 06:34:49
消息摘要算法是一种单向加密算法 主要用于验证数据完整性,也是数字签名的核心算法 消息鉴别:指在接收方将原始信息进行摘要,然后与接收到的摘要信息进行对比 a.MD家族 – MD5(128位摘要信息) MD算法的作用流程 public class MDFamily { private static final String str = "鲤鱼精"; public static void main(String[] args) { jdkMD("MD5"); ccMD5(); jdkMD("MD2"); jdkMD("MD4"); bcMD4(); } public static void jdkMD(String md){ try { if(md == "MD4"){ //在JDK中动态加入BC MD4 Security.addProvider(new BouncyCastlePQCProvider()); MessageDigest messageDigest = MessageDigest.getInstance(md); byte[] md4 = messageDigest.digest(str.getBytes()); System.out.println("JDK "+md+":"+Hex.encodeHexString(md4)); } /

SSL CA 电子签章

时光怂恿深爱的人放手 提交于 2020-03-23 12:12:28
一、 SSL (Secure Socket Layer) 为 Netscape 所研发,用以保障在 Internet 上数据传输之安全,利用数据加密 (Encryption) 技术,可确保数据在网络 上之传输过程中不会被截取及窃听。目前一般通用之规格为 40 bit 之安全标准,美国则已推出 128 bit 之更高安全 标准,但限制出境。只要 3.0 版本以上之 I.E. 或 Netscape 浏览器即可支持 SSL 。 当前版本为 3.0 。它已被广泛地用于 Web 浏览器与服务器之间的身份认证和加密数据传输。 SSL 协议位于 TCP/IP 协议与各种应用层协议之间,为数据通讯提供安全支持。 SSL 协议可分为两层: SSL 记录协议( SSL Record Protocol ):它建立在可靠的传输协议(如 TCP )之上,为高层协议提供数据封装、压缩、加密等基本功能的支持。 SSL 握手协议( SSL Handshake Protocol ):它建立在 SSL 记录协议之上,用于在实际的数据传输开始前,通讯双方进行身份认证、协商加密算法、交换加密密钥等。 SSL 协议提供的服务主要有: 1 )认证用户和服务器,确保数据发送到正确的客户机和服务器; 2 )加密数据以防止数据中途被窃取; 3 )维护数据的完整性,确保数据在传输过程中不被改变。 SSL 协议的工作流程:

看完这篇 HTTPS,和面试官扯皮就没问题了

泄露秘密 提交于 2020-03-17 13:37:24
下面我们来一起学习一下 HTTPS ,首先问你一个问题,为什么有了 HTTP 之后,还需要有 HTTPS ?我突然有个想法,为什么我们面试的时候需要回答 标准答案 呢?为什么我们不说出我们自己的想法和见解,却要记住一些所谓的标准回答呢? 技术还有正确与否吗 ? HTTPS 为什么会出现 一个新技术的出现必定是为了解决某种问题的,那么 HTTPS 解决了 HTTP 的什么问题呢? HTTPS 解决了什么问题 一个简单的回答可能会是 HTTP 它不安全。由于 HTTP 天生明文传输的特性,在 HTTP 的传输过程中,任何人都有可能从中截获、修改或者伪造请求发送,所以可以认为 HTTP 是不安全的;在 HTTP 的传输过程中不会验证通信方的身份,因此 HTTP 信息交换的双方可能会遭到伪装,也就是 没有用户验证 ;在 HTTP 的传输过程中,接收方和发送方并 不会验证报文的完整性 ,综上,为了结局上述问题,HTTPS 应用而生。 什么是 HTTPS 你还记得 HTTP 是怎么定义的吗?HTTP 是一种 超文本传输协议(Hypertext Transfer Protocol) 协议, 它 是一个在计算机世界里专门在两点之间传输文字、图片、音频、视频等超文本数据的约定和规范 ,那么我们看一下 HTTPS 是如何定义的 HTTPS 的全称是 Hypertext Transfer

数字证书简介及Java编码实现

旧时模样 提交于 2020-03-07 02:22:06
数字签名原理简介(附数字证书) 首先要了解什么叫对称加密和非对称加密,消息摘要这些知识。 1. 非对称加密 在通信双方,如果使用非对称加密,一般遵从这样的原则:公钥加密,私钥解密。同时,一般一个密钥加密,另一个密钥就可以解密。 因为公钥是公开的,如果用来解密,那么就很容易被不必要的人解密消息。因此, 私钥也可以认为是个人身份的证明。 如果通信双方需要互发消息,那么应该建立两套非对称加密的机制(即两对公私钥密钥对),发消息的一方使用对方的公钥进行加密,接收消息的一方使用自己的私钥解密。 2.消息摘要 消息摘要可以将消息哈希转换成一个固定长度的值唯一的字符串。值唯一的意思是不同的消息转换的摘要是不同的,并且能够确保唯一。 该过程不可逆 ,即不能通过摘要反推明文(似乎SHA1已经可以被破解了,SHA2还没有。一般认为不可破解,或者破解需要耗费太多时间,性价比低)。 利用这一特性, 可以验证消息的完整性。 消息摘要通常用在数字签名中,下面介绍用法。 了解基础知识之后,就可以看一下数字签名和数字证书了。 3.数字签名 假设现在有通信双方A和B,两者之间使用两套非对称加密机制。 现在A向B发消息。 那么,如果在发送过程中,有人修改了里面密文消息,B拿到的密文,解密之后得到明文,并非A所发送的,信息不正确。 要解决两个问题:1. A的身份认证 2. A发送的消息完整性

MessageDigest数字签名,加密

别说谁变了你拦得住时间么 提交于 2020-03-03 18:55:32
Java Cryptography Architecture,Java加密架构,java平台中用于访问和开发加密功能的框架。 MessageDigest 类 MessageDigest 类是一个 引擎类 ,它是为了提供诸如 SHA1 或 MD5 等密码上安全的报文摘要功能而设计的。密码上安全的报文摘要可接受任意大小的输入(一个字节数组),并产生固定大小的输出,该输出称为一个 摘要 或散列。摘要具有以下属性: 无法通过计算找到两个散列成相同值的报文。 摘要不反映任何与输入有关的内容。 使用报文摘要可以生成数据唯一且可靠的标识符。有时它们被称为数据的“数字指纹”。 创建 MessageDigest 对象 计算摘要的第一步是创建报文摘要实例。象所有的引擎类一样,获取某类报文摘要算法的 MessageDigest 对象的途径是调用 MessageDigest 类中的 getInstance 静态 factory 方法: public static MessageDigest getInstance(String algorithm) 注意:算法名不区分大小写。例如,以下所有调用都是相等的: MessageDigest.getInstance("SHA") MessageDigest.getInstance("sha") MessageDigest.getInstance("sHa")

PKI详解

╄→尐↘猪︶ㄣ 提交于 2020-03-03 13:36:26
预备: 一、密码基元 二、密钥管理 三、PKI本质是把非对称密钥管理标准化 PKI 是 Public Key Infrastructure 的缩写,其主要功能是绑定证书持有者的身份和相关的密钥对(通过为公钥及相关的用户身份信息签发数字证书),为用户提供方便的证书申请、证书作废、证书获取、证书状态查询的途径,并利用数字证书及相关的各种服务(证书发布,黑名单发布,时间戳服务等)实现通信中各实体的身份认证、完整性、抗抵赖性和保密性。 数字证书分类 一、 什么是PKI? 官方定义:PKI是Public Key Infrastructure的首字母缩写,翻译过来就是公钥基础设施;PKI是一种遵循标准的利用公钥加密技术为电子商务的开展提供一套安全基础平台的技术和规范。PKI技术是一种遵循既定标准的密钥管理平台,它的基础是加密技术,核心是证书服务,支持集中自动的密钥管理和密钥分配,能够为所有的网络应用提供加密和数字签名等密码服务及所需要的密钥和证书管理体系。 通俗理解:PKI就是利用公开密钥理论和技术建立提供安全服务的、具有通用性的基础设施,是创建、颁发、管理、注销公钥证书所涉及的所有软件、硬件集合体,PKI可以用来建立不同实体间的"信任"关系,它是目前网络安全建设的基础与核心。PKI的主要任务是在开放环境中为开放性业务提供基于非对称密钥密码技术的一系列安全服务,包括身份证书和密钥管理、机密性

HTTPS中TLS/SSL的握手过程

半城伤御伤魂 提交于 2020-02-27 09:05:09
1,非对称加密技术 非对称加密算法需要两个密钥,公开密钥(publickey)和私有密钥(privatekey);公钥和私钥是成对出现的。 非对称加密例子:B想把一段信息传给A,步骤:1)A把公钥传给B;2)B拿到A的公钥并利用此密钥给信息加密;3)B把加密的信息传给A;4)A利用私有密钥对加密信息进行解密即可得到B想给自己的信息。 (这个过程叫做密码传输,即B把信息加密后传给A) 问题:如果有个捣乱的冒充B,也用A的公钥给一段信息加密,并传给A,A再私钥解密得到的信息就会误认为是B的。 要解决此问题,B需要给A传个验证信息,让A可以验证自己受到的信息是B传的。该验证信息即下面的数字摘要(数字指纹) 2,数字摘要技术 该技术主要利用了哈希函数的两个特性:1)单向性;2)计算结果位数固定 数字摘要是采用单向Hash函数将需要加密的明文“摘要”成一串固定长度(128位)的密文,这一串密文又称为数字指纹,它有固定的长度,而且不同的明文摘要成密文,其结果总是不同的,而同样的明文其摘要必定一致。“数字摘要“是https能确保数据完整性和防篡改的根本原因。 3,数字签名技术 数字签名技术既利用了数字摘要(数字指纹)技术也利用了非对称加解密技术 。 数字签名过程 :1)B利用哈希函数得到上面传输信息的哈希值;2)B利用私钥给哈希值加密(注意:这里的非对称加密(私钥加密,公钥解密