Java安全——密钥那些事】的更多相关文章

标签(空格分隔): Java 安全 概念 密钥是加密算法不可缺少的部分.密钥在安全体系中至关重要,正如其名,私密的钥匙,打开安全的大门.密钥分两种:对称密钥和非对称密钥.非对称密钥里又包含公开密钥和私有密钥. 与密钥相关的还有一个概念是证书.证书主要用于鉴别密钥,通常将公开密钥放到证书里传输. Java的安全体系里,密钥是通过JCE算法包实现的.操作密钥的引擎包含两部分:密钥生成器和密钥工厂.密钥生成器可以创建密钥,而密钥工厂将其进行包装展示到外部.所以对于编写程序来说,创建密钥包括两个步骤:1…
在任何系统中,日志都是非常重要的组成部分,它是反映系统运行情况的重要依据,也是排查问题时的必要线索.绝大多数人都认可日志的重要性,但是又有多少人仔细想过该怎么打日志,日志对性能的影响究竟有多大呢?今天就让我们来聊聊Java日志性能那些事. 说到Java日志,大家肯定都会说要选择合理的日志级别.合理控制日志内容,但是这仅是万里长征第一步……哪怕一些DEBUG级别的日志在生产环境中不会输出到文件中,也可能带来不小的开销.我们撇开判断和方法调用的开销,在Log4J 2.x的性能文档中有这样一组对比:…
一.keytool的概念 keytool 是个密钥和证书管理工具.它使用户能够管理自己的公钥/私钥对及相关证书,用于(通过数字签名)自我认证(用户向别的用户/服务认证自己)或数据完整性以及认证服务.在JDK 1.4以后的版本中都包含了这一工具,它的位置为%JAVA_HOME%\bin\keytool.exe,如下图所示: 二.keytool的用法…
前言 其实事情的经过也许会复杂了点,这事还得从两个月前开始说.那天,我果断不干IT支援.那天,我立志要做一个真正的程序猿.那天,我26岁11个月.那天,我开始看Android.那天,我一边叨念着有朋自远方来,一边投身了JAVA的怀抱.那天,一切将会改变. 好吧,反正总的来说就是时隔4年半,我又开始搞JAVA了.Eclipse还是Eclipse:NetBeans还是NetBeans:Java被收之后已经来到了7,现在是8:在入手了几本JAVA的书籍后发现<JAVA编程思想>还是这么伟大:开始了新…
1.首先我们先讲下Collection接口 Collection接口:Collection是最基本的集合接口,它是由一个独立元素所组成的序列,这些元素服务一条或多条规则.一个Collection代表一组Object,即Collection的元素(Elements). 有些Collection允许有相同的元素,另一些则不允许,有些可以进行排序,另一些则也不允许,Java SDK不提供直接继承Collection的接口,而是继承Collection的一些子接口,"如List,Set"接口.…
目录 最近有需求,想存自定义的枚举值,比如 HOTLINE("Hotline") 我想存 Hotline 于是研究了一下Java的枚举问题 如下数据库的Entity (贫血模型哈) @Entity @Table(name = "complaint") public class Complaint { @Id @GeneratedValue private Long id; private CaseOrigin origin; } 枚举 public enum Cas…
一.该篇内容用于记录.net和Java之间,RSA公密钥的转换 using Org.BouncyCastle.Asn1.Pkcs; using Org.BouncyCastle.Asn1.X509; using Org.BouncyCastle.Crypto.Parameters; using Org.BouncyCastle.Math; using Org.BouncyCastle.Pkcs; using Org.BouncyCastle.Security; using Org.BouncyC…
由于业务需求,需要实现在客户端对重要信息进行加密,在服务端进行解密.客户端包括IOS和安卓的 服务端位Java. 注意密钥 需要保持一致,可以自己定义 . 安卓端加密代码: ===================================================================================================================== import android.util.Base64; import java.io.Un…
title: Java-for循环那些事 toc: true date: 2019-05-21 10:28:44 categories: Java tags: - Tips --- Java for循环里面的 i++ 与 ++i 在for循环里两者的作用是一样的 i++ for(int i=0; i<5; i++){ System.out.print(i + ","); } >> 0, 1, 2, 3, 4 ++i for(int i=0; i<5; ++i){…
大家好,我是程序员小跃,一名在职场已经写了6年程序的老程序员,从一开始的菊厂 Android 开发到现在某游戏公司的Java后端架构,对Java还是相对了解的挺多. 大概是半年前吧,在知乎上有个知友私信给我,问我关于零基础如何学习Java,以及在学习过程中会存在一定的迷茫,如何应对等等. 我想着何不把以前的内容重新整合下分享出来给大家呢,于是就有了今天的这次分享. 在过去的一年多时间里,跃哥通过这份清晰的路线图,已经帮助 20+同学做好定位,快速认清了自己当前的现状,并做好相应的应对措施,甚至有…
要想写出高性能高并发的应用,自然有许多关键,如io,算法,异步,语言特性,操作系统特性,队列,内存,cpu,分布式,网络,数据结构,高性能组件. 胡说一通先. 回到主题,线程池.如果说多线程是提高系统并发能力利器之一,那么线程池就是让这个利器更容易控制的一种工具.如果我们自己纯粹使用多线程基础特性编写,那么,必然需要相当老道的经验,才能够驾驭复杂的环境.而线程池则不需要,你只需知道如何使用,即可轻松掌控多线程,安全地为你服务. 1. 常见线程池的应用样例 线程池,不说本身很简单,但应用一定是简单…
前言 请看上篇:Java 对象头那点事 文章中的源码都有不同程度缩减,来源于openjdk8的开源代码(tag:jdk8-b120). 锁粗化过程 偏向锁 ①:markword中保存的线程ID是自己且epoch等于class的epoch,则说明是偏向锁重入. ②:偏向锁若已禁用,进行撤销偏向锁. ③:偏向锁开启,都进行进行重偏向操作. ④:若进行了锁撤销操作或重偏向操作失败,则需要升级为轻量级锁或者进一步升级为重量级锁. 匿名偏向 锁对象在发送锁竞争后会升级为偏向锁,不过当不发生锁竞争时,锁对象…
在Java中,内存的管理分为以下几个部分: Heap:堆区域,存放对象实例,凡是New出来的东西都存放在此. Stack:栈区域,存放基本数据类型.常量.局部变量.对象的引用地址 Data Segment:数据段,存放静态变量和字符串常量 Code Segment:代码段,存放代码 一个程序的执行,先要从程序的存放地加载到内存区,然后找到内存区中的main方法执行,在这个执行过程中,内存就会对其进行管理. Heap VS Stack: 内存分析实例:    现在通过一个实例来分析下在程序的执行过…
集合类的整体架构 比较重要的集合类图如下:   有序否 允许元素重复否 Collection 否 是 List 是 是 Set AbstractSet 否 否 HashSet TreeSet 是(用二叉树排序) Map AbstractMap 否 使用key-value来映射和存储数据,Key必须惟一,value可以重复 HashMap TreeMap 是(用二叉树排序) HashMap详解 HashMap 和 HashSet 是 Java Collection Framework 的两个重要成…
MAC openssl: RSA加解密 第一条命令是生成密钥长度为1024的密钥: 第二条命令是从中生成公钥: 第三条命令是使用pkcs8编码密钥为私钥 http://blog.csdn.net/chaijunkun/article/details/7275632/ http://blog.csdn.net/chaijunkun/article/details/7275632/ 可参考.…
1. 在官网下载JCE: http://www.oracle.com/technetwork/java/javasebusiness/downloads/java-archive-downloads-java-plat-419418.html 2. 解压后,将local_policy.jar,US_export_policy.jar拷贝至JAVA_HOME目录下的 jre/lib/security/目录下,举例: /usr/java/jdk1.6.0_43/jre/lib/security/ 3…
import java.io.StringReader; import org.bouncycastle.asn1.ASN1Sequence; import org.bouncycastle.asn1.DERBitString; import org.bouncycastle.asn1.DEREncodable; import org.bouncycastle.asn1.DERObjectIdentifier; import org.bouncycastle.asn1.DEROctetStrin…
1,查看 JAVA 的版本号 akdeMacBook-Pro:bin AK$ java -version java version "1.6.0_65" Java(TM) SE Runtime Environment (build 1.6.0_65-b14-466.1-11M4716) Java HotSpot(TM) 64-Bit Server VM (build 20.65-b04-466.1, mixed mode) 2,切换不同 JAVA 版本号 1)cd /usr/bin/…
刚刚学习java传参的时候很纠结,也非常的不理解!课本上的“按值传递”和“按址传递”搞的自己是一头雾水,后来写的项目多了,自然就明白了! 现在写传参几乎就是条件反射一般——“秒成”,分享当初自己为此写的一个ppt,留个纪念!非常简单,高手莫笑! 按值传递和按址传递的对比 同样都是传入参数,为什么变量a的值没改变,而b[0]的值改变了呢? 两种参数传递的规则 用基本数据类型传参常见的一个错误! —目的:用传参的方法将一个数的值增加至原来的3倍. 结果:输出i=10. 解释:当执行方法的时候,n拷贝…
由于不可抗因素, 需要给对接方撸一个client的demo.基于比较老的jdk. 所幸找到了这里:http://www.rabbitmq.com/releases/rabbitmq-java-client 干脆拿第一版1.4.0开撸,以下demo: import java.io.IOException; import com.rabbitmq.client.ConnectionFactory; import com.rabbitmq.client.Connection; import com.r…
首先,类加载的定义: 类加载(Class Loading)是一种机制,他描述的是将字节码以文件形式加载到内存再经过连接.初始化后,最终形成可以被虚拟机直接使用的Java类型地过程. 其次,类加载器的分类: 启动类加载器(Bootstrap ClassLoader):负责加载<\JAVA——HOME>\lib目录中的并且可以被虚拟机识别的: 扩展类加载器(Extension ClassLoader):负责加载<\JAVA_HOME>\lib\ext目录中的所有类库,开发者可以直接使用…
[更多参考] LeetCode算法 每日一题 1: Two Sum ----> 更多参考[今日头条--松鼠游学] 史上最全的五大算法总结 Java学习---7大经典的排序算法总结实现 程序员都应该知道的10大算法 值得收藏的十大经典排序算法…
转自云栖社区:https://yq.aliyun.com/articles/56?spm=5176.100239.blogcont59193.11.jOh3ZG# 摘要: 该文章来自于阿里巴巴技术协会(ATA)精选文章. Java调试概述 程序猿都调式或者debug过Java代码吧?都体会过被PM,PD,测试,业务同学们围观debug吧?说调试,先看看调试严格定义是什么.引用Wikipedia定义: 调试(De-bug),又称除错,是发现和减少计 该文章来自于阿里巴巴技术协会(ATA)精选文章.…
在上一篇聊聊高并发(三十三)从一致性(Consistency)的角度理解Java内存模型 我们说了Java内存模型是一个语言级别的内存模型抽象.它屏蔽了底层硬件实现内存一致性需求的差异,提供了对上层的统一的接口来提供保证内存一致性的编程能力. 在一致性这个问题域中,各个层面扮演的角色大致例如以下: 1. 一致性模型,定义了各种一致性模型的理论基础 2. 硬件层,提供了实现某些一致性模型的硬件能力.硬件在默认情况下依照最主要的方式执行,比方 对同一个线程没有数据依赖的指令能够重排序优化运行,有数据…
屌丝程序员们对自己的技术能力总是毫不掩饰的高调,更有甚者每当完成一个简单的功能或算法实现,恨不得从工位上跳起来,生怕谁不知道一样,心情能理解,但个人完全鄙视这种行为.说到底,大家日常的coding,大多在单线程下执行,代码书写的顺序即执行的顺序,很多时候也是我们解决问题的逻辑顺序.有很多代码,如果考虑多线程,从并发的角度去实现,伪"大牛"们可能就要原形毕露了,很多同学更是束手无策.那么,多线程真的那么可怕么?接下来本人 把自己的一些理解分享出来,如有不当,欢迎指正. java多线程问题…
先说结论:对于引用类型的变量,Java本身会创建两个东西,一个是对象本身,另一个是记录对象地址的一个int值,将引用类型的对象声明为final实际上是固定记录地址的那个int的值不能改变,如果通过某种途径改变了对象本身,那么对象也就变了! 看测试代码: /* * Copyright (c) 2017. Panteng.Co.Ltd All rights reserved */ package com.pt.memo; import org.junit.Test; import java.util…
跳槽面临的第一个难关那就是面试吧.面试的好坏直接关乎着你年薪的多少.如何顺利完成面试的那些难题,今天我们就从java中复习一下.看看经常面试的知识点,为什么面试这些知识点, 如果你是初级的或刚毕业的java猿,请看下面: 1.java三大特性.封装,继承,多态. 这道题很明显的告诉你,学习java的特点.那么 封装特点: 封装减少耦合, 隐藏信息,实现细节 继承的特点: 实现代码的复用,扩展. 多态特点: 指向子类的父类引用由于向上转型,只能访问父类中拥有的方法和属性,会丢失子类中存在,而父类中…
scala与java之间的关系,我认为可以用一句话来开头:scala来源于java,但又高于java. scala的设计者Martin Odersky就是一个JAVA控,这位牛人设计了javac和编写了jdk中的通用代码.可以说java语言本身就是Martin Odersky一步一步看着长大的.所以scala可以说打根起就和JAVA有着远远悠长的血缘关系. Martin Odersky还在写java那会,就立志开发达成一个目标:让写程序这样一个基础工作变得高效.简单.且令人愉悦!因此可以说sca…
Java 序列化简介 Java 对象序列化是 JDK 1.1 中引入的一组开创性特性之一,用于作为一种将 Java 对象的状态转换为字节数组,以便存储或传输的机制,以后,仍可以将字节数组转换回 Java 对象原有的状态. 实际上,序列化的思想是 "冻结" 对象状态,传输对象状态(写到磁盘.通过网络传输等等),然后 "解冻" 状态,重新获得可用的 Java 对象.所有这些事情的发生有点像是魔术,这要归功于 ObjectInputStream/ObjectOutputS…
http://www.infoq.com/cn/articles/java-multi-thread-volatile/ 1. 前言 volatile关键字可能是Java开发人员“熟悉而又陌生”的一个关键字.本文将从volatile关键字的作用.开销和典型应用场景以及Java虚拟机对volatile关键字的实现这几个方面为读者全面深入剖析volatile关键字. volatile字面上有“挥发性的,不稳定的”意思,它是用于修饰可变共享变量(Mutable Shared Variable)的一个关…