小编Gre*_*and的帖子

SHA256withRSA和SHA256之间的区别然后是RSA

使用以下两种方法计算签名有什么区别?

  1. 用来计算签名 Signature.getInstance("SHA256withRSA")
  2. 计算SHA256 MessageDigest.getInstance("SHA-256")并计算摘要Signature.getInstance("RSA");以获得签名?

如果它们不同,有没有办法修改方法2,以便两种方法都提供相同的输出?

我尝试了以下代码:

package mysha.mysha;
import java.security.MessageDigest;
import java.security.PrivateKey;
import java.security.Security;
import java.security.Signature;

import org.bouncycastle.jce.provider.BouncyCastleProvider;

public class MySHA256 {

    public static void main(String[] args) throws Exception {
        //compute SHA256 first
        Security.addProvider(new BouncyCastleProvider());
        String s = "1234";
        MessageDigest messageDigest = MessageDigest.getInstance("SHA-256");
        messageDigest.update(s.getBytes());
        byte[] outputDigest = messageDigest.digest();       
        //sign SHA256 with RSA
        PrivateKey privateKey = Share.loadPk8("D:/key.pk8");
        Signature rsaSignature = Signature.getInstance("RSA");
        rsaSignature.initSign(privateKey);
        rsaSignature.update(outputDigest);
        byte[] signed = rsaSignature.sign();
        System.out.println(bytesToHex(signed));


        //compute SHA256withRSA as a single step
        Signature rsaSha256Signature = …
Run Code Online (Sandbox Code Playgroud)

java rsa bouncycastle digital-signature

27
推荐指数
1
解决办法
3万
查看次数

使用适用于Android的Facebook SDK 3以额外权限登录

我按照"使用Facebook登录创建一个新的Android项目"部分的步骤访问https://developers.facebook.com/docs/getting-started/facebook-sdk-for-android/3.0/登录过程很好.因为我想使用本机Android按钮供用户登录,所以我将以下代码移动到原生Android按钮的View.OnClickListener()中稍微修改代码.以下是侦听器中的代码:

Session.openActiveSession(MainActivity.this, true, new Session.StatusCallback() {
    // callback when session changes state
    @Override
    public void call(Session session,SessionState state, Exception exception) {
        if (session.isOpened()) {                           
            // make request to the /me API
            Request.executeMeRequestAsync(session,new Request.GraphUserCallback() {

                // callback after Graph API
                // response with user object
                @Override
                public void onCompleted(GraphUser user,Response response) {
                    if (user != null) {
                        Toast.makeText(getApplicationContext(), "Hello " + user.getName() +" "+user.getId()+"!", Toast.LENGTH_LONG).show();
                    }
                }
            });
        }
    }
});
Run Code Online (Sandbox Code Playgroud)

onActivityResult()和AndroidManifest.xml与教程相同

@Override
public void onActivityResult(int requestCode, int resultCode, …
Run Code Online (Sandbox Code Playgroud)

android facebook facebook-authentication facebook-android-sdk

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