Tag: 三元组

DESede和TripleDES之间的差异cipher.getInstance()

我试图让TripleDES加密在Java中工作。 从Keying Options下的Wikipedia文章中 ,我想使用选项1,其中All three keys are independent 。 从Cipher文档中可以看到这里的参考指南 ,但我仍然不清楚。 我正在努力让示例运行,并在不同的项目中使用这两行: Cipher c = Cipher.getInstance(“DESede”); Cipher cipher = Cipher.getInstance(“TripleDES/ECB/PKCS5Padding”); 编译都很好,那有什么区别? 我应该使用一个吗? 这两个都可以使用三个独立的键吗?

三元运算符中的多个条件

首先,问题是“编写一个Java程序,使用三元运算符找到三个最小的数字。” 这是我的代码: class questionNine { public static void main(String args[]) { int x = 1, y = 2, z = 3; int smallestNum; smallestNum = (x<y && x<z) ? x : (y<x && y<z) ? y : (z<y && z<x) ? z; System.out.println(smallestNum + " is the smallest of the three numbers."); } } 我尝试在三元运算符中使用多个条件,但这不起作用。 […]

在连接三元运算符的2个结果时,字符串连接在Java中无法正常工作

亲爱的Java大师! 请你解释一下,为什么串联连接在连接三元运算符的2个结果时在Java中无法正常工作? 例: String str = null; String x = str != null ? “A” : “B” + str == null ? “C” : “D”; System.out.println(x); 输出为“D”,但我预计“BC”。 由于操作员的优先考虑,我怀疑它是这样的,但我不确定,关于我们如何在上面的情况下得到“D”。 这种情况下会采用什么计算算法?

三重DES解密无效密钥,16字节

我有一个Android项目,我从我的Web服务获得一个Triple DES加密文本。 我需要Triple DES解密。 但是,我收到无效的密钥exception。 我的密钥转换为HEX格式,我收到一个错误: W/System.err﹕ java.security.InvalidKeyException: DES key too long – should be 8 bytes我在这里找到一个论坛解释说hex可能会导致问题 “DES密钥是56位,通常以8个字节打包,所以他们给你的16个字节/字符很可能是密钥的hex编码字节。你可以得到一个hex解码器” 所以我使用了将hex字符串转换为字节数组 private static byte[] hexStringtoByteArray(String hex){ int len = hex.length(); byte [] data = new byte[len/2]; for(int i=0; i<len;i+=2){ data[i/2] = (byte)((Character.digit(hex.charAt(i), 16)<<4) + Character.digit(hex.charAt(i+1),16)); } return data; } 并将其传递给密码,我收到一个错误: W/System.err﹕ java.security.InvalidKeyException W/System.err﹕ at javax.crypto.spec.DESedeKeySpec. 这是我的解密方法。 如果有人可以对我可能出错的地方有所了解,我将不胜感激。 […]

Java:避免在嵌套类中检查null(深度空检查)

想象一下,我有一个class级家庭。 它包含一个人员列表。 每个(类)Person包含一个(类)地址。 每个(类)地址包含一个(类)PostalCode。 任何“中间”类都可以为null。 那么,有没有一种简单的方法来获取PostalCode而无需在每一步检查null? 即,有没有办法避免以下菊花链代码? 我知道没有“原生”Java解决方案,但希望有人知道库或其他东西。 (已检查Commons&Guava并没有看到任何内容) if(family != null) { if(family.getPeople() != null) { if(family.people.get(0) != null) { if(people.get(0).getAddress() != null) { if(people.get(0).getAddress().getPostalCode() != null) { //FINALLY MADE IT TO DO SOMETHING!!! } } } } } 不,不能改变结构。 它来自我无法控制的服务。 不,我不能使用Groovy,它是方便的“猫王”操作员。 不,我宁愿不等待Java 8:D 我不敢相信我是第一个生病的人,厌倦了写这样的代码,但我找不到解决办法。 想法? 谢谢 – llappall

奇怪的Java行为。 三元运算符

为什么这段代码有效? Float testFloat = null; Float f = true ? null : 0f; 为什么会抛出exception呢? Float testFloat = null; Float f = true ? testFloat : 0f; 但最奇怪的是,此代码也成功运行,没有任何例外: Float testFloat = null; Float f = testFloat; 似乎Java的三元运算符改变了行为。 谁能解释为什么会这样,拜托?

没有赋值的Java三元组

有没有办法在没有做任务的情况下进行java三元操作或假冒伪造? 我喜欢做一堆if / then / elses时简洁的三元代码看起来如何。 我希望能够基于布尔代数语句调用两个void函数之一。 就像是: (bool1 && bool2) ? voidFunc1() : voidFunc2(); 我的函数是返回类型为void ,所以如果有一种方法可以在赋值中伪造它以使其工作,那么我对此很好……我想看看如何做到这一点:)