最近碰到个 CRC-CCITT (Kermit)校验算法,于是我百度一顿操作,毫无结果。没找到任何JAVA版本的 CRC-CCITT (Kermit),其他的语言也少!终于在一个神奇的地方找到了一个C语言版本,翻译过来如下,特此分享!

C版本原址:http://www.lammertbies.nl/comm/info/crc-calculation.html

public class Crc {private static final int POLYNOMIAL = 0x8408;private static final int PRESET = 0;static private int[] tab;static {tab = new int[256];for (int i = 0; i < 256; i++) {tab[i] = initial((byte) i);}}private static int initial(byte c) {int crc = 0;for (int j = 0; j < 8; j++) {if (((crc ^ c) & 1) == 1) {crc = ((crc >> 1) ^ POLYNOMIAL);} else {crc = (crc >> 1);}c = (byte) (c >> 1);}return crc;}private static int update_crc(int crc, byte c) {int cc = (0xff & c);int tmp = (crc ^ cc);crc = (crc >> 8) ^ tab[tmp & 0xff];return crc;}private static int swab(int n) {return (((n & 0xFF00) >> 8) + ((n & 0xFF) << 8));}public static int crc(String str) {return crcb(str.getBytes());}public static int crcb(byte... i) {int crc = PRESET;for (byte c : i) {crc = update_crc(crc, c);}return swab(crc);}public static void main(String[] args) {int crc = Crc.crcb((byte) 0xFC, (byte) 5, (byte) 0x11);System.out.println(Integer.toHexString(crc));crc = Crc.crc("123456789");//结果是0x8921System.out.println(Integer.toHexString(crc));}
}

JAVA CRC-CCITT (Kermit)!!内网仅此一份相关推荐

  1. JAVA基于Netty实现内网穿透功能【设计实践】

    目录 背景 实践 项目结构 原理分析 代码实现 cc-common项目 cc-server项目 cc-client项目 使用 启动服务端 启动客户端 备注 背景 本文实现了一个简单的内网穿透服务,可以 ...

  2. java局域网邮件_Java内网发送邮件

    最近为单位的系统增加了一个新的功能,为用户定期发送邮件,用了了Javaweb 发送邮件功能,所以对遇到的问题进行整理,为以后遇到同样问题的同志提供一些参考. Java发送邮件的方式有两种,一种是通过j ...

  3. 【计算机网络】了解内网、外网、宽带、带宽、流量、网速

    文章目录 一.带宽与宽带的区别是什么? 1.宽带 2.带宽 3.流量 二.带宽.网速和流量之间的关系 三.上行带宽和下行带宽是什么意思?各有什么作用? 四.服务器的上行和下行带宽理解 五.内网ip和外 ...

  4. 阿里云oss 使用, 基于Nginx 配置云服务器+oss的内网访问 , 及使用Java SDK 完成上传,下载,删除,查询文件列表操作

    一.同阿里产品,云服务器和存储对象oss-配置内网访问 阿里存储对象oss 地址: https://oss.console.aliyun.com/overview 配置须知 通过Nginx 进行网络转 ...

  5. java 远程debug 内网_java jdb remote debug - java远程调试

    简介 用log来做调试的方法低效茫目 远程调试是jdk自带的一个有利调试工具,可以快速定位问题 在工作机上使用eclipse来自带的remote debug 问题 运维禁止使用remote debug ...

  6. java判断内网ip_Java判断IP地址为内网IP还是公网IP的方法

    本文实例讲述了Java判断IP地址为内网IP还是公网IP的方法.分享给大家供大家参考.具体分析如下: tcp/ip协议中,专门保留了三个IP地址区域作为私有地址,其地址范围如下: 10.0.0.0/8 ...

  7. DNS内网欺骗(仅供参考)

    DNS内网欺骗(仅供参考) 下面展示一些 内联代码片. //启动apche2 systemctl start apache2 在/var/www/html/目录下添加index.html访问页面 // ...

  8. Java实现内网穿透

    使用场景 1.当公司的一些系统功能使用了第三方服务时,通常第三方会回调我们的接口.在对接阶段,为了方便debug,我们肯定希望能回调到我们本地电脑上来. 2.当你在公司想访问部署在家里电脑的服务或者文 ...

  9. JAVA 获取本机IP(包括 内网IP 和 公网IP)

    Spring 获取客户端请求 IP,详见:https://blog.csdn.net/NRlovestudy/article/details/90900925 本文获取的是 项目所在系统的IP(本地I ...

最新文章

  1. 怎样实现企业管理系统的操作日志功能
  2. 对linuxptp软件移植到arm下遇到的问题进行记录
  3. spring boot(二):web综合开发
  4. fs-extra导出换行txt文件
  5. 【C语言进阶深度学习记录】二十一 # 和 ## 号操作符的使用与分析
  6. 怎么调节手机的刷新率_二分钟科普:手机上的“高刷新率”
  7. win32获取其它进程变量地址存放的信息
  8. 高,低电平复位电路原理及加电容的作用
  9. layer.open回显数据select选择默认值
  10. 三星s7250d下载php,HTML5表现令人满意_三星 S7250D(Wave M)_手机其它OS-中关村在线...
  11. 第五章 Spark-SQL进阶(一)之Dataset用法
  12. 孙玄:转转如何打造AI工程架构体系
  13. 各类免费的的机器人仿真软件优缺点汇总
  14. ISO27001信息安全管理体系认证范围及用处
  15. 神奇的机器人评课_小学信息技术《我的编程我做主——点亮神奇的灯》评课稿...
  16. linux就该这么学
  17. 特征工程——用转换器抽取特征
  18. 分屏演示PPT,你可同时看见幻灯片备注信息
  19. 微型计算机处理数据的本质,四川信息职业技术学院2019考纲复习
  20. 51单片机+DS18B20+数码管显示+串口通讯+Proteus仿真

热门文章

  1. 制作系统光盘Server 2003 总结
  2. 打造高效研发团队 (1) —— 组织架构篇
  3. 设计模式-创建者模式篇
  4. 看过无数Java GC文章,这5个问题你也未必知道!
  5. 用选择法或冒泡法对输入的50个字符(按照ASII码由小到大)进行排序
  6. 数学建模学习17(最短距离、BP神经网络)
  7. LC3编码开源代码测试
  8. 西农大 Java实习 异常处理
  9. 50欧姆 50Ω 同轴双端口衰减器(DC-40GHz ;2W---10KW)
  10. js html游戏仿写,天猫首页天猫超市下的选项卡(加自动轮播效果)仿写(js加jquery实现动态效果)...