日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

Netty入门(七)使用SSL/TLS加密Netty程序

發(fā)布時(shí)間:2025/5/22 编程问答 16 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Netty入门(七)使用SSL/TLS加密Netty程序 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

  為了支持 SSL/TLS,Java 提供了 javax.net.ssl API 的類 SslContext 和 SslEngine 使它相對(duì)簡(jiǎn)單的實(shí)現(xiàn)解密和加密。Netty 利用該 API 實(shí)現(xiàn)了 ChannelHandler 的子類 SslHandler。下圖為 Sslhandler 的數(shù)據(jù)流圖:  

  

  • ?加密的入站數(shù)據(jù)被 SslHandler 攔截,進(jìn)行解密
  • ?數(shù)據(jù)被解密后,原始數(shù)據(jù)入站
  • ?原始數(shù)據(jù)經(jīng)過(guò) SslHandler
  • ?SslHandler 加密數(shù)據(jù)并傳遞數(shù)據(jù)出站
  • ?

    ?  下面是 SslHandler 的一個(gè)簡(jiǎn)單使用:

    1 public class SslChannelInitializer extends ChannelInitializer<Channel> { 2 private final SslContext context; 3 private final boolean client; 4 private final boolean startTls; // 第一次請(qǐng)求是否加密 5 6 public SslChannelInitializer(SslContext context, boolean client, boolean startTls) { 7 this.context = context; 8 this.client = client; 9 this.startTls = startTls; 10 } 11 12 @Override 13 protected void initChannel(Channel ch) throws Exception { 14 // 給每個(gè) SslHandler 實(shí)例使用一個(gè)新的 SslEngine 15 SSLEngine engine = context.newEngine(ch.alloc()); 16 engine.setUseClientMode(client); // 設(shè)置SslEngine是client或者是server模式 17 // 添加SslHandler到pipeline作為第一個(gè)處理器 18 ch.pipeline().addFirst("ssl", new SslHandler(engine, startTls)); 19 } 20 21 }

    ?

    ?  如上所示,SslHandler 使用 ChannelInitializer 添加到 ChannelPipeline。在大多數(shù)情況下,SslHandler 將成為 ChannelPipeline 的第一個(gè) ChannelHandler。

      SslHandler 還有很多有用的方法,如下:

      

    ?

    轉(zhuǎn)載于:https://www.cnblogs.com/coderJiebao/p/Netty07.html

    總結(jié)

    以上是生活随笔為你收集整理的Netty入门(七)使用SSL/TLS加密Netty程序的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

    如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。