wangjiang123_个人页

个人头像照片 wangjiang123
个人头像照片
0
2
0

个人介绍

暂无个人介绍

擅长的技术

  • Python
  • 容器
获得更多能力
通用技术能力:

暂时未有相关通用技术能力~

云产品技术能力:

暂时未有相关云产品技术能力~

阿里云技能认证

详细说明
暂无更多信息
正在加载, 请稍后...
暂无更多信息
  • 回答了问题 2015-08-02

    为什么java服务器把加签结果返给客户端,总说signature不匹配!!!!!

    Re为什么java服务器把加签结果返给客户端,总说signature不匹配!!!!!
    献上源码:
    Client
    ossService.setGlobalDefaultTokenGenerator(new TokenGenerator() { // 璁剧疆鍏ㄥ眬榛樿鍔犵鍣�
                @Override
                public String generateToken(String httpMethod, String md5, String type, String date,
                        String ossHeaders, String resource) {


                    String content = httpMethod + "\n" + md5 + "\n" + type + "\n" + date + "\n" + ossHeaders
                            + resource;
                    try {
                        //Create a socket to connect to the server
                        Socket socket=new Socket(serverUri,8000);


                        //Create an input stream to receive data from the server
                        fromServer=socket.getInputStream();
                        BufferedReader bufferedReader=new BufferedReader(new InputStreamReader(fromServer));


                        //Create an output stream to send data from the server
                        toServer=socket.getOutputStream();
                        PrintWriter printWriter=new PrintWriter(toServer);


                        content=content.replace('\n', '!');
                        content=content+"\n";
                        //Send content to server
                        printWriter.write(content);
                        //Test
                        textView1.setText("content has been already sent.It's value is "+content);


                        printWriter.flush();


                        //Recieve signature from server
                        while (true) {
                            signResult=bufferedReader.readLine().trim();
                            if(signResult!=null){
                                //Test
                                textView2.setText("Signature has already recieved.It's value is "+signResult);
                                break;
                            }


                        }
                        fromServer.close();
                        bufferedReader.close();
                        toServer.close();
                        printWriter.close();
                        socket.close();
                    } catch (UnknownHostException e) {
                        e.printStackTrace();
                    } catch (IOException e) {
                        e.printStackTrace();
                    }






                    //return "OSS " + accessKey + ":" + signature; // 注意"OSS"和accessKey之间存在一个空格!!!
                    return signResult;
                }




            });

    Server

    public static void main(String[] args) throws NoSuchAlgorithmException,InvalidKeyException{
            
              try{
                    //Create a server socket
                    serverSocket=new ServerSocket(8000);
                  
                    //Listen for a connection request
                    socket=serverSocket.accept();


                    //Create data input and output streams
                    inputFromClient=socket.getInputStream();
                    bufferedReader=new BufferedReader(new InputStreamReader(inputFromClient));
                    
                    outputToClient=socket.getOutputStream();
                    printWriter=new PrintWriter(outputToClient);


                    while (true) {
                        //Receive radius from the client
                        
                        String getContent=bufferedReader.readLine();
                        
                        //Test
                        if(getContent!=null){
                            getContent=getContent.replace('!', '\n');
                            System.out.println("Recieved content successful! It's:"+getContent);
                            //getContent=getContent.substring(0,getContent.length()-2);
                             //Encode
                            String signResult=null;
                            try {
                                //signResult=OSSToolKit.generateToken(accessKey, secretKey, getContent);
                                HmacSHA1Signature hmacSHA1Signature=new HmacSHA1Signature();
                                signResult="OSS " + accessKey + ":"+hmacSHA1Signature.computeSignature(secretKey, getContent);
                                signResult=signResult.trim();
                            } catch (Exception e) {
                                // TODO: handle exception
                                OSSLog.logD(e.toString());
                            }
                            
                            //Test
                            if(signResult!=null){
                                System.out.println("Encode signature successful! It's:"+signResult);
                            }else {
                                System.out.println("signature is null!");
                            }
                            //Send signature to the client
                            printWriter.write(signResult);
                            System.out.println("Send signature is successful!");
                            printWriter.flush();
                            break;
                        }
                        
                    }
                    inputFromClient.close();
                    bufferedReader.close();
                    outputToClient.close();
                    printWriter.close();
                    socket.close();
                    serverSocket.close();
                    
                }
                catch(IOException e){
                    e.printStackTrace();
                }
        
              
      }

















    -------------------------

    回2楼徇云一五的帖子
    官方的java代码,你是指 客户端+服务器 都是pc的方式。我跑过了,没问题的。而且 客户端+服务器 都是pc的方式并没有涉及到 服务器加签 操作。晕。。

    -------------------------

    回5楼qq449774982的帖子
    你那边也是 android客户端,服务器加密签方式?服务器用java吗??
    我java服务器也是用OSSToolKit.generateToken(accessKey, screctKey, content); 这个方法加密么??可是为什么一直返回null??
    踩0 评论0
  • 提交了问题 2015-08-02

    为什么java服务器把加签结果返给客户端,总说signature不匹配!!!!!

正在加载, 请稍后...
滑动查看更多
正在加载, 请稍后...
暂无更多信息