小编Sha*_*haz的帖子

在 Java 中使用 BitSet 跟踪前导零

因此,根据这个问题,有两种方法可以查看 a 的大小BitSet

  1. size(),这是遗留的,并不是很有用。我同意这一点。大小是64做后:

    BitSet b = new BitSet(8);

  2. length(),它返回最高设置位的索引。在上面的例子中,length()将返回0. 这有点有用,但不能准确反映在BitSet您有前导零的情况下应该表示的位数。

我很少(如果有的话)处理的信息平均分为 8 位字节,前导0s 对我来说和1s一样重要。我有一些 333 位长的数据字段,一些是 20 位等。

有没有更好的方法来处理 Java 中的位级细节来跟踪前导零?否则,我将不得不“自己动手”,可以这么说。对此我已经有了一些想法,但如果可能的话,我不想重新发明轮子。

java bitset

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

Java的加密记录器

我会先提出这个问题:

Java中是否有可用于加密的记录器(最好是128位AES或更好)?

在过去的几天里,我做了很多搜索.我发现了一些共同的主题:

  • 在log4j和log4j2之间解析信息让我感到头疼(但与手头的任务无关)
  • 大多数线程都是过时的,包括SO上的那些.这个可能是我在SO上找到的最好的,其中一个较新的答案链接到自己动手版本.
  • 最常见的答案是"自己动手",但这些答案在这一点上还有几年的历史.
  • 很多人质疑为什么我或任何人都会用Java来做这件事,因为即使没有源代码也很容易分析Java代码.

最后一点,这对我的项目来说几乎没有实际意义.我们还使用代码混淆器,并可以使用其他混淆技术.使用加密的目的只是为了提高我们的日志"非常简单"的标准,即使它只是"温和耗时".稍微相关一点 - 我们要加密的日志记录仅用于alpha/beta,并且可能只包括调试,警告和日志记录的错误级别(因此要加密的消息数量应该相当低) .

我在Log4j2中找到的最好的是他们的文档:

KeyProviders

Log4j中的某些组件可以提供执行数据加密的能力.这些组件需要密钥才能执行加密.应用程序可以通过创建实现SecretKeyProvider接口的类来提供密钥.

但是,除了"插件能够进行加密"之外,我还没有找到任何其他细节.我还没有找到实际具有该功能的插件.

我也刚刚开始尝试为Java找到其他记录器,看看它们是否有一个实现,但没有什么真正跳出来搜索'java logging encryption'之类的搜索.

java encryption logging

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

标签 统计

java ×2

bitset ×1

encryption ×1

logging ×1