NodeJS代码:
const salt = new Buffer('GHlDHToiZA1ViUu+W+EXww==', 'base64');
输出如下:
<Buffer 18 79 43 1d 3a 22 64 0d 55 89 4b be 5b e1 17 c3>
我在PHP中需要相同的输出。阅读有关PHP的pack
函数的某处,但我不知道如何使用它。
答案 0 :(得分:0)
似乎您正在使用base64;在php中,您是正确的<android.support.constraint.ConstraintLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="#ececec"
tools:context=".MainActivity">
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="vertical">
<android.support.design.widget.AppBarLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:fitsSystemWindows="true">
<include
android:id="@+id/toolbar"
layout="@layout/toolbar_top" />
<include
android:id="@+id/toolbar2"
layout="@layout/toolbar_bot" />
</android.support.design.widget.AppBarLayout>
</LinearLayout>
<android.support.v4.widget.NestedScrollView
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_gravity="fill_vertical"
app:layout_behaviour="@string/appbar_scrolling_view_behaviour">
<!--STARTWEBVIEW -->
<WebView
android:id="@+id/webview"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:visibility="visible"/>
<!--ENDWEBVIEW-->
</android.support.v4.widget.NestedScrollView>
</android.support.constraint.ConstraintLayout>
,pack
是您的朋友。
示例
在节点中
unpack
在PHP中
$ node
> Buffer('hello world').toString('base64')
aGVsbG8gd29sZA==
但是,如果您只是在寻找二进制文件:
在节点中
$ php -a
php > echo base64_encode('hello world');
aGVsbG8gd29ybGQ=
在PHP中
> Buffer('hello wold')
<Buffer 68 65 6c 6c 6f 20 77 6f 6c 64>
因此,在您的实例中,您将首先解码base64,然后将其解压缩。
php > print_r(unpack('H*', 'hello world'));
Array
(
[1] => 68656c6c6f20776f726c64
)
轻松自在;)
答案 1 :(得分:0)
我遇到了同样的问题,我使用数据包找到了解决方案:lcobucci/jwt。
必须在 base64 中通过您的密钥创建缓冲区,创建后将转换为二进制以对 jwt 进行签名。
$configuration = Configuration::forSymmetricSigner(
// You may use any HMAC variations (256, 384, and 512)
new Sha256(),
// replace the value below with a key of your own!
InMemory::base64Encoded('your-base64-key')
// You may also override the JOSE encoder/decoder if needed by providing extra arguments here
);