小编fst*_*nis的帖子

使用 openssl 生成 JWT RS256 签名

我正在尝试使用openssl. 以以下示例令牌为例:

eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ
Run Code Online (Sandbox Code Playgroud)

根据RFC 7518,RS256 表示所使用的签名是“使用 SHA-256 的 RSASSA-PKCS1-v1_5”。我的理解是,以下使用方法openssl dgst可以:

# generate the key
openssl genrsa -out private.pem 2048

# generate the signature
echo 'eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ' | \
openssl dgst -sha256 -sign private.pem -binary | \
openssl base64 | \
tr -- '+/=' '-_ '
Run Code Online (Sandbox Code Playgroud)

但是,尝试使用 jwt.io 验证会导致无效签名。此外,使用 jwt.io 使用相同的私钥生成签名会产生完全不同的签名。

我究竟做错了什么?是否openssl dgst签署此令牌的正确方法是什么?

signature rsa openssl

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

Pulseaudio:等待设备启动?

根据本指南,我在 Raspberry Pi 上设置了pulseaudio 以在系统模式下运行。这是我的 systemd 服务文件的样子:

[Unit]
Description=PulseAudio Daemon
After=sound.target
Requires=sound.target

[Install]
WantedBy=default.target

[Service]
Type=notify
ExecStart=/usr/bin/pulseaudio --disallow-exit --no-cpu-limit --daemonize=no --system --realtime --disallow-module-loading --log-target=journal -vvvv
Run Code Online (Sandbox Code Playgroud)

但是,我没有收到任何声音 - 根据日志,pulseaudio 启动时,udev-detect 报告“找到 0 张卡”。我只得到空接收器。运行systemctl --system restart pulseaudio.service修复了这个问题,我的音频设备被正确检测到。

有没有办法告诉pulseaudio等到检测到设备?

audio linux pulse-audio systemd

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

标签 统计

audio ×1

linux ×1

openssl ×1

pulse-audio ×1

rsa ×1

signature ×1

systemd ×1