Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ssl/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Encryption 通过SSL发送整数而不是字符串以节省带宽是一个好主意吗?_Encryption_Ssl_Websocket - Fatal编程技术网

Encryption 通过SSL发送整数而不是字符串以节省带宽是一个好主意吗?

Encryption 通过SSL发送整数而不是字符串以节省带宽是一个好主意吗?,encryption,ssl,websocket,Encryption,Ssl,Websocket,我正在创建一个客户端服务器设计的应用程序。客户端和服务器通过WebSocket以二进制消息(CBOR数组)的形式发送数据,从而相互通信。我没有发送字符串,而是创建了一个用整数映射的字典,如下所示: const DICT: &[&str] = &[ "USERNAME_NOT_AVAILABLE", "USERNAME_AND_PASSWORD_DID_NOT_MATCHED", ....blablba lon

我正在创建一个客户端服务器设计的应用程序。客户端和服务器通过WebSocket以二进制消息(CBOR数组)的形式发送数据,从而相互通信。我没有发送字符串,而是创建了一个用整数映射的字典,如下所示:

const DICT: &[&str] = &[
    "USERNAME_NOT_AVAILABLE",
    "USERNAME_AND_PASSWORD_DID_NOT_MATCHED",
    ....blablba long list ....
];

// genrates code like this:-
// pub const USERNAME_AND_PASSWORD_DID_NOT_MATCHED : u16 = 4;
fn gen_rust(version: &String) -> String {
    let mut code = format!(
        "//generated code from Examer server version {}\n\n",
        version
    );
    for (index, element) in DICT.iter().enumerate() {
        code.push_str(&format!("pub const {} : u16 = {};\n", element, index))
    }
    code
} 
生成的字典然后在客户端和服务器之间共享,我发送整数而不是字符串


如果我经常犯拼写错误,这种方法确实提供了自动补全和编译时错误等好处,但这会减少使用SSL加密时的消息大小吗?我听说,如果消息太小,则会添加填充,因此我减少消息大小的主要目标将无法实现。

现代TLS密码套件(TLS 1.3中唯一可用的密码套件,也是HTTP/2中唯一允许的密码套件)不使用填充。这是因为AES-GCM和ChaCha20-Poly1305基于CTR,而非CBC

请注意,(过时的)CBC密码套件中的填充每个消息最多16字节,通常被认为是无关紧要的

请注意,websocket的帧、TLS记录和MAC的帧都是无法消除的带宽开销。您不能只发送原始的CBOR值,而使用一些保留长度的加密进行加密


您应该使用wireshark来观察应用程序发送消息时实际发送的数据量。

您甚至不清楚使用TLS发送的是什么消息。假设您在一条消息中发送100个值,其中每个值在映射到整数之前为100字节,如果表示为整数,则仅为2字节,那么消息显然要小得多。如果仅将单个3字节字符串映射为2字节整数,则任何差异都与此无关,因为所有其他协议层的开销占主导地位。