问题列表 - 第8048页

如何使用密码和Java加密/解密12位十进制数到其他十进制数?

我已经阅读了使用Java来加密整数使用DES使用Pass Phrase加密.

我需要的只是一个简单的加密器,它将12位数字转换为12位数字,具有以下约束:

  1. 加密必须依赖于密码(在应用程序的整个生命周期内都是不变的),而不是其他任何密码.
  2. 映射必须为1-1(无散列和多个输入给出相同的输出,反之亦然).
  3. 映射不能在不同的VM之间更改,或者在启动VM时(例如,当您重新启动Java时,该实用程序应该为您提供相同的映射,这意味着它必须完全依赖于提供的密码).
  4. 以0开头的数字不是有效的12位数字(输入数字也不会以0开头).
  5. 密钥/密码永远不应该是可猜测的.例如,运行具有多个输入的实用程序并分析输出不应该允许人们猜测键/ pwd/hash或其他.
  6. 所有输入将精确地为12位且小于12位数的素数(这意味着我们可以使用模运算).

通过文献搜索我有这个代码与我

public void mytestSimple(long code, String password) throws Exception {
    SecretKey key = new SecretKeySpec(password.getBytes(), "DES");
    Cipher ecipher = Cipher.getInstance("DES");
    ecipher.init(Cipher.ENCRYPT_MODE, key);
    System.out.println(ecipher.getOutputSize(8));

    byte[] encrypted = ecipher.doFinal(numberToBytes(code));
    System.out.println(encrypted + "--" + encrypted.length);

    Cipher dcipher = Cipher.getInstance("DES");
    dcipher.init(Cipher.DECRYPT_MODE, key);
    byte[] decrypted = dcipher.doFinal(encrypted);
    System.out.println(bytesToNumber(decrypted) + "--" + decrypted.length);
}

public void testSimple() throws Exception {
    mytestSimple(981762654986L, "password");
}
Run Code Online (Sandbox Code Playgroud)

我遇到了问题

  1. 如何将16个字节转换为12位数字.
  2. 保持1-1映射.
  3. 在多个VM调用中保持加密/解密相同.

****我在下面添加的答案****

我添加了一个答案,即从标准Ja​​va RSA密钥对逻辑中提取的40位RSA.我仍然需要研究边缘情况.我将接受答案并提出"Tadmas",我认为有点引导我回答.有人能告诉我我的算法是否会变弱/可攻击吗?

java encryption

1
推荐指数
2
解决办法
9815
查看次数

什么是com.apple.Dont_Steal_Mac_OS_X

com.apple.Dont_Steal_Mac_OS_X是一个IOResources提供商......

类继承:Dont_Steal_Mac_OS_X:IOService:IORegistryEntry:OSObject

它是如何工作的?

它有什么作用?

macos iokit copy-protection

23
推荐指数
2
解决办法
2万
查看次数

推土机映射的常数

有没有人知道如何用dozer将常量值放入属性?推土机的文档中我没有看到任何相关内容

java dozer

7
推荐指数
1
解决办法
6202
查看次数

SQL查询使列中的所有数据都是UPPER CASE?

我需要一个SQL查询来使列UPPER CASE中的所有数据?

有任何想法吗?

sql uppercase

64
推荐指数
2
解决办法
18万
查看次数

.NET Framework版本问题

我使用的是IIS 7.0 + Windows Server 2008 x64.我在我的机器上安装了.NET Framework 3.5,但是从IIS 7.0应用程序池.NET框架设置中,我只能将版本设置为v1.0或v2.0.为什么我不能设置为v3.5版本 - 这是我在我的机器上安装的.NET框架的最新版本?

.net iis version

1
推荐指数
1
解决办法
947
查看次数

如何在Java中创建一个新的List

我们创建一个Set:

Set myset = new HashSet()
Run Code Online (Sandbox Code Playgroud)

我们如何List在Java中创建?

java collections list

710
推荐指数
22
解决办法
183万
查看次数

如何使用Sphinx生成Microsoft Word文档

Sphinx支持几种输出格式:

  • 多个HTML文件(带htmldirhtml)
  • 乳胶,有助于创建.pdf.ps
  • 文本

如何在Microsoft Word文件中获取输出?

使用另一个doc生成器,我设法生成一个单独的html输出文件,然后使用Word应用程序将其转换为Microsoft Word格式.

不幸的是,我不知道生成Word或HTML单页格式的方法.

documentation ms-word python-sphinx

19
推荐指数
4
解决办法
1万
查看次数

Windows malloc替换(例如,tcmalloc)和动态crt链接

使用多个DLL和QT的C++程序应该配备malloc替换(如tcmalloc),以解决可以验证由Windows malloc引起的性能问题.使用linux,没有问题,但是对于Windows,有几种方法,我发现它们都没有吸引力:

1.将新的malloc放入lib并确保首先链接它(其他SO问题)

这样做的缺点是,例如strdup仍将使用旧的malloc,而free可能会使程序崩溃.

2.使用lib.exe(Chrome)从静态libcrt库中删除malloc

铬/铬进行测试/使用(?),但缺点是它只能与静态连接crt一起使用.如果一个系统库与msvcrt动态链接,则静态链接存在问题,堆分配/释放中可能存在不匹配.如果我理解正确,tcmalloc可以动态链接,以便所有自编译的dll都有一个公共堆(这很好).

3.补丁crt源代码(firefox)

Firefox的jemalloc显然修补了Windows CRT源代码并构建了一个新的crt.这又有上面的静态/动态链接问题.

人们可以考虑使用它来生成动态MSVCRT,但我认为这是不可能的,因为许可证禁止提供具有相同名称的修补MSVCRT.

4.在运行时动态修补加载的CRT

一些商业内存分配器可以做这样的魔术.tcmalloc也可以,但这看起来相当丑陋.它有一些问题,但它们已被修复.目前,使用tcmalloc它不能在64位窗口下工作.

有更好的方法吗?任何意见?

windows malloc dll crt msvcrt

23
推荐指数
3
解决办法
1万
查看次数

在变量中保存进程运行的秒数

我想在bash中运行一个进程,并在env变量中保存运行所花费的秒数.我怎么做这样的事情?

linux bash time

6
推荐指数
2
解决办法
7689
查看次数

为什么我的Windows服务不会写入我的日志文件?

我有一个Windows服务并使用nlog进行日志记录.当我从visual studio ide运行时,一切正常.日志文件更新没有问题.当我安装该服务时,该服务运行正常,但日志文件永远不会更新.如果有帮助,我在LOCAL SERVICE下运行.是的,我在我的应用程序文件夹下创建了logs目录.

 <?xml version="1.0" encoding="utf-8" ?>
 <nlog xmlns="http://www.nlog-project.org/schemas/NLog.xsd"
     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" >

  <targets>
    <target name="file" xsi:type="File" fileName="${basedir}/logs/${shortdate}_info.txt"
            layout="${date} ${logger} ${message}" />
  </targets>

  <rules>
    <logger name="*" minlevel="Info" maxlevel="Info" writeTo="file" />
  </rules>
</nlog>
Run Code Online (Sandbox Code Playgroud)

c# service logging windows-services nlog

25
推荐指数
3
解决办法
4万
查看次数