netty服务端加解密
参考链接:https://www.cnblogs.com/silyvin/articles/11827030.html
一、解密
1、自定义解密类
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | import io.netty.buffer.ByteBuf; import io.netty.buffer.Unpooled; import io.netty.channel.ChannelHandlerContext; import io.netty.handler.codec.ByteToMessageDecoder; import java.util.List; //自定义解密 public class CustomDecoder extends ByteToMessageDecoder { @Override protected void decode(ChannelHandlerContext ctx, ByteBuf in, List<Object> out) throws Exception { byte [] bytes = new byte [in.readableBytes()]; in.readBytes(bytes); byte [] encoded = Utils.decryp(bytes);; //自定义解密方法 ByteBuf buf = Unpooled.wrappedBuffer(encoded); out.add(buf); } } |
2、加入到pipeline中
1 2 | ChannelPipeline pipeline = ch.pipeline(); pipeline.addLast( new CustomDecoder()); //解密操作 |
二、加密
1、自定义加密类
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 | import io.netty.buffer.ByteBuf; import io.netty.buffer.Unpooled; import io.netty.channel.ChannelHandlerContext; import io.netty.handler.codec.MessageToByteEncoder; public class HJ212MessageEncoder extends MessageToByteEncoder<HJ212PackBean> { @Override protected void encode(ChannelHandlerContext ctx, HJ212PackBean bean, ByteBuf byteBuf) throws Exception { String response = "" ; //自定义拼接回复内容response byte [] bytes=response.getBytes(); bytes = Utils.encryp(bytes); //自定义加密方法 ctx.writeAndFlush(Unpooled.copiedBuffer(bytes)); } @Override public void exceptionCaught(ChannelHandlerContext ctx, Throwable cause) throws Exception { logger.error( "编码异常" + cause.getMessage()); ctx.close(); } } |
2、加入到pipeline
1 2 | ChannelPipeline pipeline = ch.pipeline(); pipeline.addLast( new HJ212MessageEncoder()); |
分类:
java
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 展开说说关于C#中ORM框架的用法!
2018-11-23 收藏的有用的网页