如何使用tweetnacl-js密码加密密钥?

时间:2016-03-25 22:44:09

标签: web-applications javascript

强烈推荐

https://github.com/dchest/tweetnacl-js

我有一个项目,团队希望在ID上显示编码为base64的密钥对。当然,他们不想只显示密钥,而是存储密码的加密版本。像这样......

import android.app.Activity;
import android.os.Bundle;
import android.widget.TextView;

public class Drinks extends Activity{
    TextView drinkHolder;
    public static String drinkType = Bar.setDrinkType;
    String drinkTestHolder="";

    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_drinks);
        drinkTestHolder = drinkType;
        drinkHolder = (TextView)findViewById(R.id.drinkTest);
        //String barNameHolder = "@string/"+drinkType;
        //int textInt1 = getResources().getIdentifier(barNameHolder, null, getPackageName());
        drinkHolder.setText(drinkTestHolder);
    }
}

我被告知不要使用CryptoJS。有没有更好的方法来使用tweetnacl?

感谢。

1 个答案:

答案 0 :(得分:0)

tweetnacl有一个名为secretbox的对称加密实现。您可以使用AES加密所需的任何内容,包括密钥。

伪代码:

var smkey = stringToUint8Array(keystring); // must be 32 bytes, pad it if you have to
var nonce = nacl.randomBytes(nacl.box.nonceLength);
var encryptedSecretKey = nacl.secretbox(secretKey, nonce, smkey);

然后,您可以将加密的Uint8Array转换为string或base64并使用它。