Tag: 密钥

如何以编程方式生成按键Android

在我的应用程序中,当用户按下DPAD_LEFT时,我想生成两个DPAD_UP按下。 我知道可以使用这样的方法完成: @Override private boolean onKeyDown(int keyCode, KeyEvent event) { if (keyCode == KeyEvent.KEYCODE_DPAD_LEFT) { keyDownUp(KeyEvent.KEYCODE_DPAD_UP); keyDownUp(KeyEvent.KEYCODE_DPAD_UP); return true; } return super.onKeyDown(keyCode,event); } private void keyDownUp(int a) { getCurrentInputConnection().sendKeyEvent( new KeyEvent(KeyEvent.ACTION_DOWN, a)); getCurrentInputConnection().sendKeyEvent( new KeyEvent(KeyEvent.ACTION_UP, a)); } 但是,为了能够使用“getCurrentInputConnection()”方法,我需要扩展InputMethodService,这是不可能的,因为我的应用程序已经扩展了另一个类。 还有另一种解决方法吗?

如何使用AES加密java中的文件

我需要知道如何创建AES并使用它来加密和解密java中的文件。

存储/恢复加密密钥以便在java中解密字符串的简便方法

对于加密我使用这样的东西: SecretKey aesKey = KeyGenerator.getInstance(“AES”).generateKey(); StringEncrypter aesEncrypt = new StringEncrypter(aesKey, aesKey.getAlgorithm()); String aesEncrypted= aesEncrypt.encrypt(StringContent); 如果我打印出aesKey,我会得到:“javax.crypto.spec.SecretKeySpec@1708d”。 因此,对于加密,我想问用户密钥,但不知道它应该是什么格式。 我的计划是这样的: SecretKey aesKey = javax.crypto.spec.SecretKeySpec@1708d; StringEncrypter aesEncrypt = new StringEncrypter(aesKey, aesKey.getAlgorithm()); String aesDecrypt = aesEncrypt.decrypt(aesEncrypted); 但似乎它不起作用。 是否有一些简单的方法可以在加密后将密钥打印到控制台,以便用户可以保存(或记住它)然后用于解密? 整个代码在这里: 无法解密来自文本文件,对称密钥工具的密文。 在java所以我很抱歉再次发布但我不确定如果代码甚至可读(我是新手)。

使用Java中的BigIntegers进行BitShifting

我正在使用BigIntegers在Java中实现DES加密。 我通过使用BigInteger.leftShift(int n)方法将Java二进制密钥与Java BigIntegers一起移位。 N(Kn)的关键取决于Kn-1的移位结果。 我得到的问题是,我在每个键生成后打印出结果,并且移位不是预期的输出。 密钥分为2 Cn和Dn(分别为左和右)。 我特意尝试这个:“要做左移,将每个位移到左边一个位置,除了第一个位,循环到块的末尾。” 根据转变,它似乎最终会对O进行攻击。 不知道如何纠正这个问题。 结果: c0:11110101010100110011000011110 d0:11110001111001100110101010100 c1:111101010101001100110000111100 d1:111100011110011001101010101000 c2:11110101010100110011000011110000 d2:11110001111001100110101010100000 c3:1111010101010011001100001111000000 d3:1111000111100110011010101010000000 c4:111101010101001100110000111100000000 d4:111100011110011001101010101000000000 c5:11110101010100110011000011110000000000 d5:11110001111001100110101010100000000000 c6:1111010101010011001100001111000000000000 d6:1111000111100110011010101010000000000000 c7:111101010101001100110000111100000000000000 d7:111100011110011001101010101000000000000000 c8:1111010101010011001100001111000000000000000 d8:1111000111100110011010101010000000000000000 c9:111101010101001100110000111100000000000000000 d9:111100011110011001101010101000000000000000000 c10:11110101010100110011000011110000000000000000000 d10:11110001111001100110101010100000000000000000000 c11:1111010101010011001100001111000000000000000000000 d11:1111000111100110011010101010000000000000000000000 c12:111101010101001100110000111100000000000000000000000 d12:111100011110011001101010101000000000000000000000000 c13:11110101010100110011000011110000000000000000000000000 d13:111100011110011001101010101000000000000000000000000000000 c14:1111010101010011001100001111000000000000000000000000000 d14:1111000111100110011010101010000000000000000000000000000 c15:11110101010100110011000011110000000000000000000000000000 d15:111100011110011001101010101000000000000000000000000000000000

嵌套映射或java中的组合键

我需要一个Map来在Java中创建一个缓存,以获得相同的值,我有两个String键。 我的问题是,最好制作嵌套地图(每个键一个)或者使用两个字符串制作某种类型的自定义键? 访问缓存上的数据将始终使用两个密钥访问,我不需要通过这两个密钥中的任何一个对其进行分组。 然后,如果更好地结合字符串键只有一个什么更好? 使用自定义getHash方法的自定义类。 但那么问题是哈希函数实现了什么? 简单地将两个字符串连接在一起。 例如: cache.put(key1 + key2,value)

将Char转换为Java KeyEvent KeyCode

我正在编写一个基本程序,要求用户键入一个字符串,我正在尝试使用一个Robot(来自java.awt.Robot ),它将在延迟后将此消息键入另一个文档。 我现在遇到的问题是我需要将从message.charAt(i)获得的任何内容转换为KeyEvent.VK_[insert Char] KeyCode。 有没有更好的方法来做我想做的事情? 我想我总是可以有一个巨大的switch语句来获得适当的KeyCode,但我希望有一个更优雅的方式。 我第一次想到,已经做了一段时间的python,就是创建一个字符串”KeyEvent.VK_” + message.charAt(i)并将其转换为代码以某种方式,但我认为唯一的方法是使用不鼓励的reflection。