我正在创建一个ACME客户端,我需要找到我的 RSA 公钥的模数和指数,我使用以下代码生成该密钥:
crypto.generateKeyPairSync('rsa', {
modulusLength: 4096,
publicKeyEncoding: {
type: 'spki',
format: 'pem'
},
privateKeyEncoding: {
type: 'pkcs8',
format: 'pem'
}
});
Run Code Online (Sandbox Code Playgroud)
我需要模数和指数,以便我可以在JWS的JWK部分中使用它们:
alg: 'RS256',
jwk: {
kty: 'RSA',
e: '...',
n: '...'
},
nonce,
url: directory.newAccount
Run Code Online (Sandbox Code Playgroud)
我已成功使用以下行将公钥从base64解码为十六进制,但我不确定下一步该怎么做:
Buffer.from(publicKey, 'base64').toString('hex');
Run Code Online (Sandbox Code Playgroud)
如何在 Node.js 中找到 RSA 公钥的模数和指数?
我发现 Node.js 默认使用公共指数 65537:Node.js 文档。
我之前下载了 Android Studio 4.1 Beta 5 并且运行良好,但是当我今天启动它时,显示此错误:
Internal error. Please refer to https://code.google.com/p/android/issues
java.util.concurrent.CompletionException: java.lang.AssertionError: Attribute
id='AUTO_DETECTION_CACHE_ATTRIBUTE' is not unique
at java.util.concurrent.CompletableFuture.encodeThrowable(CompletableFuture.java:273)
at java.util.concurrent.CompletableFuture.completeThrowable(CompletableFuture.java:280)
at java.util.concurrent.CompletableFuture$AsyncRun.run(CompletableFuture.java:1643)
at com.intellij.util.concurrency.BoundedTaskExecutor.doRun(BoundedTaskExecutor.java:222)
at com.intellij.util.concurrency.BoundedTaskExecutor.access$200(BoundedTaskExecutor.java:29)
at com.intellij.util.concurrency.BoundedTaskExecutor$1.execute(BoundedTaskExecutor.java:201)
at com.intellij.util.concurrency.BoundedTaskExecutor$1.run(BoundedTaskExecutor.java:193)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
at java.lang.Thread.run(Thread.java:748)
Caused by: java.lang.AssertionError: Attribute id='AUTO_DETECTION_CACHE_ATTRIBUTE' is not unique
at com.intellij.openapi.vfs.newvfs.FileAttribute.<init>(FileAttribute.java:34)
at com.intellij.openapi.fileTypes.impl.FileTypeManagerImpl.<init>(FileTypeManagerImpl.java:159)
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
at
sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
at java.lang.reflect.Constructor.newInstance(Constructor.java:423)
at.....
-----
JRE 1.8.0_242-release-1644-b01 amd64 by JetBrains s.r.o
C:\Program Files\Android\Android Studio 4.1 Beta\jre\jre
Run Code Online (Sandbox Code Playgroud)
我应该怎么做才能解决问题?
我有一个名为run.bat的文件,它应该编译 TypeScript 文件,然后在 Node.js 中运行输出的 JavaScript 文件:
tsc
node index.js
Run Code Online (Sandbox Code Playgroud)
问题是 TypeScript 编译器在完成编译后退出批处理脚本,因此该命令node index.js永远不会被执行。
如何保证之后的命令tsc得到执行?
我尝试查看编译器选项,但无法找到任何选项来阻止 TypeScript 编译器退出批处理脚本。