douyi1341 2019-04-29 06:45
浏览 94

是否有任何标准协议可通过网络传输RSA加密文本?

I have a client and a server side code. I have to take a message as input from the client, encrypt it and send it to the server. But when I print this encrypted message on the server side, it is not the same as it was on the client side. Here's how I am doing this:

First I am encrypting the message using rsa.EncryptOAEP() function. The message is a member of a struct which has other members too. I am encoding this struct with the gob package and sending it to the server.

Here's the snippet of client side code:

func SocketClient() {
    conn, err := net.Dial("tcp", ":9000")
    if err != nil {
        log.Fatalln(err)
    }
    defer conn.Close()
    enc := gob.NewEncoder(conn)
    buff, _ := input_reader.ReadBytes('
')    //this is the message to be encrypted
    label := []byte("")
    hash := sha256.New()
    ciphertext, _ := rsa.EncryptOAEP(
        hash,
        rand.Reader,
        &receiverPublicKey,
        buff,
        label,
    )
    fmt.Printf("%s",ciphertext) //this is to check if the text is same or not
    block.Message = ciphertext //this is the struct to be sent over network
    enc.Encode(block)
}

Here's the server side code:

func handleConn(conn net.Conn) {
    defer conn.Close()
    dec := gob.NewDecoder(conn)
    dec.Decode(&block)
    fmt.Printf("%s",block.Message) //it is different from the text printed in client side code
}

When I am printing the message, it should be the same on both the side. So is there some standard protocol or something to deal with encrypted texts?

  • 写回答

0条回答 默认 最新

    报告相同问题?

    悬赏问题

    • ¥15 安卓adb backup备份应用数据失败
    • ¥15 eclipse运行项目时遇到的问题
    • ¥15 关于#c##的问题:最近需要用CAT工具Trados进行一些开发
    • ¥15 南大pa1 小游戏没有界面,并且报了如下错误,尝试过换显卡驱动,但是好像不行
    • ¥15 没有证书,nginx怎么反向代理到只能接受https的公网网站
    • ¥50 成都蓉城足球俱乐部小程序抢票
    • ¥15 yolov7训练自己的数据集
    • ¥15 esp8266与51单片机连接问题(标签-单片机|关键词-串口)(相关搜索:51单片机|单片机|测试代码)
    • ¥15 电力市场出清matlab yalmip kkt 双层优化问题
    • ¥30 ros小车路径规划实现不了,如何解决?(操作系统-ubuntu)