首页编程java编程java里的盐是什么意思(这段JAVA代码什么意思)

java里的盐是什么意思(这段JAVA代码什么意思)

编程之家2023-10-11103次浏览

其实java里的盐是什么意思的问题并不复杂,但是又很多的朋友都不太了解这段JAVA代码什么意思,因此呢,今天小编就来为大家分享java里的盐是什么意思的一些知识,希望可以帮助到大家,下面我们一起来看看这个问题的分析吧!

java里的盐是什么意思(这段JAVA代码什么意思)

这段JAVA代码什么意思

javax.crypto.Cipher类提供加密和解密功能,该类是JCE框架的核心。

一,与所有的引擎类一样,可以通过调用Cipher类中的getInstance静态工厂方法得到Cipher对象。

public static Cipher getInstance(String transformation);

java里的盐是什么意思(这段JAVA代码什么意思)

public static Cipher getInstance(String transformation,String provider);

参数transformation是一个字符串,它描述了由指定输入产生输出所进行的操作或操作集合。

参数transformation总是包含密码学算法名称,比如DES,也可以在后面包含模式和填充方式。

java里的盐是什么意思(这段JAVA代码什么意思)

参数transformation可以是下列两种形式之一:

“algorithm/mode/padding”

“algorithm”

例如下面的例子就是有效的transformation形式:

"DES/CBC/PKCS5Padding"

"DES"

如果没有指定模式或填充方式,就使用特定提供者指定的默认模式或默认填充方式。例如,SunJCE提供者使用ECB作为DES、DES-EDE和 Blowfish等Cipher的默认模式,并使用PKCS5Padding作为它们默认的填充方案。这意味着在SunJCE提供者中,下列形式的声明是等价的:Cipher c1=Cipher.getInstance("DES/ECB/PKCS5Padding");

Cipher c1=Cipher.getInstance("DES");

当以流加密方式请求以块划分的cipher时,可以在模式名后面跟上一次运算需要操作的bit数目,例如采用"DES/CFB8/NoPadding"和"DES/OFB32/PKCS5Padding"形式的transformation参数。如果没有指定数目,则使用提供者指定的默认值(例如 SunJCE提供者使用的默认值是64bit)。

getInstance工厂方法返回的对象没有进行初始化,因此在使用前必须进行初始化。

通过getInstance得到的Cipher对象必须使用下列四个模式之一进行初始化,这四个模式在Cipher类中被定义为final integer常数,我们可以使用符号名来引用这些模式:

ENCRYPT_MODE,加密数据

DECRYPT_MODE,解密数据

WRAP_MODE,将一个Key封装成字节,可以用来进行安全传输

UNWRAP_MODE,将前述已封装的密钥解开成java.security.Key对象

每个Cipher初始化方法使用一个模式参数opmod,并用此模式初始化Cipher对象。此外还有其他参数,包括密钥key、包含密钥的证书certificate、算法参数params和随机源random。

我们可以调用以下的init方法之一来初始化Cipher对象:

public void init(int opmod,Key key);

public void init(int opmod,Certificate certificate);

public void init(int opmod,Key key,SecureRandom random);

public void init(int opmod,Certificate certificate,SecureRandom random);

public void init(int opmod,Key key,AlgorithmParameterSpec params);

public void init(int opmod,Key key,AlgorithmParameterSpec params,SecureRandom random);

public void init(int opmod,Key key,AlgorithmParameters params);

public void init(int opmod,Key key,AlgorithmParameters params,SecureRandom random);

必须指出的是,加密和解密必须使用相同的参数。当Cipher对象被初始化时,它将失去以前得到的所有状态。即,初始化Cipher对象与新建一个Cipher实例然后将它初始化是等价的。

二,可以调用以下的doFinal()方法之一完成单步的加密或解密数据:

public byte[] doFinal(byte[] input);

public byte[] doFinal(byte[] input,int inputOffset,int inputLen);

public int doFinal(byte[] input,int inputOffset,int inputLen,byte[] output);

public int doFinal(byte[] input,int inputOffset,int inputLen,byte[] output,int outputOffset);

在多步加密或解密数据时,首先需要一次或多次调用update方法,用以提供加密或解密的所有数据:

public byte[] update(byte[] input);

public byte[] update(byte[] input,int inputOffset,int inputLen);

public int update(byte[] input,int inputOffset,int inputLen,byte[] output);

public int update(byte[] input,int inputOffset,int inputLen,byte[] output,int outputOffset);

如果还有输入数据,多步操作可以使用前面提到的doFinal方法之一结束。如果没有数据,多步操作可以使用下面的doFinal方法之一结束:

public byte[] doFinal();

public int doFinal(byte[] output,int outputOffset);

如果在transformation参数部分指定了padding或unpadding方式,则所有的doFinal方法都要注意所用的padding或unpadding方式。

调用doFinal方法将会重置Cipher对象到使用init进行初始化时的状态,就是说,Cipher对象被重置,使得可以进行更多数据的加密或解密,至于这两种模式,可以在调用init时进行指定。

三,包裹wrap密钥必须先使用WRAP_MODE初始化Cipher对象,然后调用以下方法:

public final byte[] wrap(Key key);

如果将调用wrap方法的结果(wrap后的密钥字节)提供给解包裹unwrap的人使用,必须给接收者发送以下额外信息:

(1)密钥算法名称:

密钥算法名称可以调用Key接口提供的getAlgorithm方法得到:

public String getAlgorithm();

(2)被包裹密钥的类型(Cipher.SECRET_KEY,Cipher.PRIVATE_KEY,Cipher.PUBLIC_KEY)

sourcelink: http://bbs.sdu.edu.cn/pc/pccon.php?id=1292&nid=41716&order=&tid=

为了对调用wrap方法返回的字节进行解包,必须先使用UNWRAP_MODE模式初始化Cipher对象,然后调用以下方法:

public final Key unwrap(byte[] wrappedKey,String wrappedKeyAlgorithm,int wrappedKeyType));

其中,参数wrappedKey是调用wrap方法返回的字节,参数wrappedKeyAlgorithm是用来包裹密钥的算法,参数 wrappedKeyType是被包裹密钥的类型,该类型必须是Cipher.SECRET_KEY,Cipher.PRIVATE_KEY, Cipher.PUBLIC_KEY三者之一。

四,SunJCE提供者实现的cipher算法使用如下参数:

(1)采用CBC、CFB、OFB、PCBC模式的DES、DES-EDE和Blowfish算法。,它们使用初始化向量IV作为参数。可以使用javax.crypto.spec.IvParameterSpec类并使用给定的IV参数来初始化Cipher对象。

(2)PBEWithMD5AndDES使用的参数是一个由盐值和迭代次数组成的参数集合。可以使用javax.crypto.spec.PBEParameterSpec类并利用给定盐值和迭代次数来初始化Cipher对象。

注意:如果使用SealedObject类,就不必为解密运算参数的传递和保存担心。这个类在加密对象内容中附带了密封和加密的参数,可以使用相同的参数对其进行解封和解密。

Cipher中的某些update和doFinal方法允许调用者指定加密或解密数据的输出缓存。此时,保证指定的缓存足够大以容纳加密或解密运算的结果是非常重要的

软需是什么意思

问题一:经济中的“软需求”是什么意思? 5分大概是看不见的需求吧,也就是潜在的需求

问题二:需求疲软是什么意思经济状态,表现在需要趋于低落,成交的数额减少。

经济学意义上的需求是指既有购买欲望又有购买能力的有效需求。一种商品的需求数量是由许多因素共同决定锭,其中主要因素有该商品的价格、消费者的收入水平、相关商品的价格、消费者的偏好和消费者对该商品的预期等。

问题三:软件开发需要用的软件是什么意思开发所用的IDE,

比如采用C++来开发,那么常用的IDE就是微软的VS系列,如VS2013 VS2015等等.

问题四:内需不振,外需疲软什么意思,请举例说明。谢谢。内需就是投资和消费,内需不振就是说:

1,投资分为***投资和民间投资.因为08年的四万亿投资效果已经证明效果很差了,导致现在***一***债,现在国务院强制银行延迟地方***还债时间就是明证,所以***投资这方面搞不起来了,民间投资方面现在股市搞得多少人套牢?广东上海浙江又多少工厂倒闭就知道民间投资什么个情况了.

2,至于消费,看看现在的房价,又看看大批大批的企业倒闭,还有谁能消费得起来??靠三公消费吗?

外需疲软就是说出口越来越不行了,出口的东西越来越少,出口能赚的钱也越来越少.为什么不行?还不是国内的人工越来越贵,待遇要求也越来越高,出口的东西就贵了,贵了就没有人买了.而老外因为08年的金融危机自己都喘不气来,谁还有哪个心情买你中国的东西,何况这东西还越来越贵了,比不上越南货菲律宾货印度货等等.

于是就会出现一些热炒的东西比如房子,蒜头等等,因为其他东西不赚钱,总不能把钱放在银行里吃利息吧,一看这房子炒得火热,就一起上了,于是等房子价格涨到头的时候(难道你真以为房子能涨到100万/平米就像08年认为股市会涨到一万点一样)就大家一起完蛋吧

问题五:软件需要java环境什么意思运行JAVA程序时,必须要安装供JAVA程序运行的JAVA运行时环境

你下载了limewire之后一般会附带安装java的,除非你的手机不支持JAVA

问题六:什么水需要软水处理什么是软水

含或含较少可溶性钙、镁化合物的水叫做软水(soft water)。软水不易与肥皂产生浮渣,而硬水相反。天然软水一般指江水、河水、湖(淡水湖)水。经软化处理的硬水指钙盐和镁盐含量降为 1.0~50毫克/升后得到的软化水。虽然煮沸就可以将暂时硬水变为软水,但在工业上若采用此法来处理大量用水,则是极不经济的。

软水的作用

水可将肌肤细胞内的污物彻底清除,延缓皮肤衰老,使清洗后的皮肤无紧绷感,光泽细腻。由于软水中含有丰富的有机矿物质,具有较强的去污力,只需少量的卸妆膏,就可取得100%的卸妆效果,因此软水是爱美人士的必需品。软水用于经常性的饮用和沐浴,可帮您解除皮肤干燥、皮癣、皮屑苦恼,恢复正常的弹性皮肤。皮肤炎症,是由于肥皂、洗涤剂、摩擦、木材、皮革、***性佐料细菌、干燥空气等作用下产生的,发生湿疹或手足裂纹时,若常用软水清洗,就可驱除互疹,愈合裂纹,还您柔软、富有光泽的手、足。

软水还可以有效抑制真菌。发生皮外伤、冻伤、烧伤之类意外时,先用软水洗净患处后,并以软水浸湿脱脂棉、纱布、毛巾等,轻擦患部,可快速愈合伤口,并且使烧伤引起的浮肿马上消失,这是由于软水具有促进细胞组织再生的作用。经常使用软水洗头可使发丝轻柔、飘逸,去屑止痒,不枯不涩,发型自然光泽。

问题七:有些软件需要手机识别码什么意思啊就是会读取手机的类型,比如QQ,写说说会认出手机类型并发出去让他人知道

问题八:下载软件需支付null是什么意思软件里面出现null一般表示进入了一个错误状态,要取的值取不到了,比如突然断线这种情况

问题九:驱动是什么意思?哪些软件需要驱动程序软件不需要驱动,硬激才需要驱动。

驱动就是控制程序,就像大脑的思想可以控制身体各个部位。而游戏,就是属于应用了。

问题十:老是感觉硬度不够,没有那种硬棒棒的时候,以前硬的按不动,现在有时候会做着做着就会软需要亲我才能维持这是肾虚的现象,可能你对性生活太频繁了,或者***频繁过度,都会有这类表现。需要用六味地黄丸或者五味衍中丸来补补肾了。

作为java初级程序员,我该去国企还是私企

你好,私企压力大工资高,国企工资低但轻松,待遇最主要的薪资和互联网没法比,看重钱的话和前途发展的人,建议去互联网大厂历练,当然具体还是看个人选择。

1、互联网私企程序员

在互联网大厂做程序员,可以参与到超大用户规模的项目中,考虑问题更加全面,代码质量要求更高,项目经验也会更丰富,这些都是非常宝贵的经验。

简单的谈一下互联网行业,那就是钱多节奏快。但是从技术上确实容易得到成长,尤其是当你维护与大促相关的系统的时候

北京某大厂,作为系统负责人,系统docker就800个,那个系统的并发量在全国来说肯定是top级别的。

通过维护大促系统,排查跳点,不断地优化系统的框架,优化jvm,所带来的技术提升是质的飞跃。

但是相对来说,很累,比如说双十一,首先在两个月前就要开始备战,晚上要压测,一般是凌晨1点到4点,因为那个时候量最少,然后双十一那十二天每天晚上都要通宵值班。

也就是为了双十一,基本上要1个月左右两班倒通宵。

当然平时也是压力很大的,因为这种系统要24小时值班,晚上任何一个时间出现问题,都是给你发短信,机器自动打电话,出了问题,要写事故报告。

我们知道一台机器出故障的概率是千分之一的话,那你有一千台机器,那么平均一天就有一台出问题,当然实际上不会这样,但是24小时值班的问题在于你睡觉根本不踏实,它如一颗炸弹一样悬在心间。

为什么这样还选择互联网行业,当然好处是年终奖真的非常多!多到什么地步?120薪香不香?

2、国企程序员有什么不同

某学员毕业后机缘巧合进入某大型央企北方客户服务中心,先后参与并主持了多个项目的人工智能模块研发及算法实现工作。

后又因机缘巧合,进入三级单位,也就是现在的某国企,同样承担着部分项目中人工智能研发及算法实现工作。

要说和互联网行业相比,程序员的不同是什么?那必然是准点下班工作轻松。

重点来了,国企它到底香不香?这个问题真的很难回答,我认为香的前提是活少钱多,这才叫香。

放眼望去,没有这样的公司存在,存在的话,过不久也要倒闭了。

进入国企,要看个人的取舍,衡量家庭,工作,薪资三个维度,说实在的,对很多人来说很难。

进入国企,大部分薪资相比互联网行业腰斩超过三分之一。

很多人会很不理解为什么会有程序员接受这样的薪资落差。其实也是个人追求不同,有些人不能忍受互联网行业的压力带来的高薪,有些人因为组建家庭有了娃。

待遇最主要的薪资和互联网没法比,看重钱的话和前途发展的人,建议去互联网大厂。

当然,国企每个月饭补通常都是有的,公司级别组织的团建也是有的,企业年金要满足几年才会有,公积金按照城市标准来,其他没了。

国企食堂超级便宜,饭卡里的钱用不掉,可以去公司小卖部买各种生活用品,零食,小孩尿不湿都是有的,柴米油盐醋,基本上常规生活开销,饭卡能包的下来。

至于上班时间,常规的话就是855,也有要加班的时候,看团队,有的团队加班还挺多,有的就还行。

鱼和熊掌不可兼得,大家都懂。

至于是加班加到抽筋,拿钱拿到手软,还是看重氛围,干活开心,亦或是稍微稳定,钱不多也饿不死,完全看个人是选择鱼哪一个了。

希望我的回答对你有所帮助!

好了,关于java里的盐是什么意思和这段JAVA代码什么意思的问题到这里结束啦,希望可以解决您的问题哈!

java什么用(Java是什么Java到底能干嘛)当场 当场作出行政处罚决定书应载明的内容