小编ivo*_*ine的帖子

两步创建SHA256withRSA

出于教育目的,我希望能够首先为字符串创建哈希,然后从该哈希创建 RSA 数字签名,以便结果与一次性使用 SHA256withRSA 时的结果相同。这样我想确认我完全理解当我们调用 SHA256withRSA 时实际自动完成的所有步骤。

我还有一个问题。数字签名是基于哈希还是基于 Base64 编码的哈希?

下面是我当前正在使用的代码,这是代码的输出,它显示这两种方法产生不同的签名,这意味着我缺少 soma 手动步骤。

AUTOMATICALLY SIGN & VERIFY
SIGNATURE = Hj6a86sR2cJoQFolbxj0blk2I9CAdTdx6WOles5t/pyUyJwa9rp2/SRx2wyXWgc6GsvoZYGLUedeJ2Lklm5hYgT/TtNBATk5eChgfkJMz3NBIRPrsl7ZPG7Wvo4VmHsPpoZZ8PdRk8qY9RLou86OyIqRcX62isuV+e/0deHJ+yTZz4vqA3y+PE4yRFp96A8sKw5VlDnByn7bsxM/QOS+sQWTsETzU9s4YSRfKNq1Urn8/VDoel7n0ORjR918P+0kwE+G77bAOI70yQZorvmbgrMLSBJeVzkKzM/YECLWyrJsqdjfp86FkA9MPGB1V6rO8q8m5GhNoJOmNhC7Ek95Bw==

MANUALLY SIGN & VERIFY
HASH      = lDlahWCWx2b5TYUji52uPeReSW7vbro2wXuRsPKmOdA=
SIGNATURE = gsxw7UQpqni5HyPAw8wI2pvepbrDzizkOvO0hab1+7vi4EaYJi3n4lvnkBTOU5LXQKLZGzJcug0mL2pL/PVh8lrvzZ/F9CxULLxKpayrNkvL9yEWMvcfcku9Go5EGrxSzD7VYvkwOzHvGe4GgUGD1JOjvzXBAfJRT8h/wnZi9IPA9n31/tWI2eFw17Js/gymElycp7pjrpEhUNe/IVTP9HVfRQfAxEDAPW8GY/WFdxbD3Jk05LKvpTxua4jzCX9wJh/s8aiT9OvEXh3/zt06JSEpfgf+CpkOFJupmRhsgqebPfVQEo24ctw1DnipKkL771mm30bFcm/FF1reXuOqqQ==
Run Code Online (Sandbox Code Playgroud)
public class Main {

  //====================================================================================
  // MAIN
  //====================================================================================
  public static void main(String[] args) throws Exception {

    //CREATE DATA
    String            dataString = "Data to be encrypted";
    byte[]            dataBytes  = dataString.getBytes();

    //CREATE KEYS
    KeyPairGenerator  keyPairGenerator = KeyPairGenerator.getInstance("RSA");
                      keyPairGenerator.initialize(2048);
    KeyPair           keyPair    = keyPairGenerator.generateKeyPair();
    PrivateKey        privateKey = keyPair.getPrivate();

    //AUTOMATICALLY SIGN & VERIFY
    System.out.println("\nAUTOMATICALLY SIGN …
Run Code Online (Sandbox Code Playgroud)

java hash signature digital

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

Jetpack Compose - 修饰符顺序

文档说修饰符是从左边应用的。但从这个例子来看,它们似乎是从右侧应用的:首先边框,然后填充,因为文本和边框之间没有空格

Text("Hi there!", Modifier.padding(10.dp).border(2.dp, Color.Magenta))
Run Code Online (Sandbox Code Playgroud)

在此处输入图片说明

android modifier android-jetpack android-jetpack-compose

8
推荐指数
3
解决办法
2449
查看次数

如何在 Eclipse 中使用 XSLT 2.0?

WTP 3.1.0发行说明中,他们谈到了 WTP 支持 XSLT 2.0。
我有安装了 WTP 的 Eclipse Luna 4.4.1,但是

<xsl:value-of select="system-property('xsl:version')" />
Run Code Online (Sandbox Code Playgroud)

仍然总是返回1.0

那么如何在 Eclipse 中使用 XSLT 2.0?当我转到首选项时,我选择了 Xalan 2.7.1 选项。

eclipse xslt

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

Android Compose - 将 @Composables 存储到数组中

我想通过将可组合项存储到数组/堆栈中来实现简单的导航,以便我可以使用“后退”按钮将它们返回。但我不知道如何将可组合项添加到数组中。尝试声明匿名 Composable 以便我可以将其变量放入堆栈但它无法编译?我可以如何将函数名放入数组中吗?

  var Details1 = @Composable
  fun() {
    Column(Modifier.fillMaxSize()) {
      Text("Details 1")
    }
  }

  var views = arrayOf(Details1)
Run Code Online (Sandbox Code Playgroud)

android android-jetpack-compose

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