Java实现国密Sm3算法

虽然国密算法SM3的官方文档只有短短四五页,但实现起来涉及的细节还是挺多的。特此,Milo将开发心得,以及源码和注解做个分享,希望读者能够轻松理解SM3。

  • 预备知识
    • Java基本数据类型大小byte:1个字节;short:2个字节;char:2个字节;int:4个字节;long:8个字节等等。十六进制:一个数代表4个二进制位。所以需要拿捏好数据长短。
    • Ascii码有区分十进制、八进制、十六进制。官方文档样例中使用的都是十六进制,“abc”=“616263”,而不是十进制Ascii码“979899”。计算和操作过程中,要留意数据类型转换的问题。
    • 左移和循环左移官方文档中提及的移位计算均为循环左移。即移出的高位放到该数的低位。
    • 左补0在转换数据类型时,除了关注溢出问题、Ascii码问题,还要关注转换结果的长度问题。SM3算法中,若二进制长度不足需要补全,否则拼接结果时会出现意想不到的错误。

继续阅读Java实现国密Sm3算法

 
本文内容转自冰部落,仅供学习交流,版权归原作者所有,如涉及侵权,请联系删除。

声明:
本平台/个人所提供的关于股票的信息、分析和讨论,仅供投资者进行研究和参考之用。
我们不对任何股票进行明确的买入或卖出推荐。
投资者在做出投资决策时,应自行进行充分的研究和分析,并谨慎评估自己的风险承受能力和投资目标。
投资有风险,入市需谨慎。请投资者根据自身的判断和风险承受能力,自主决策,理性投资。

Java实现常用排序算法

本文主要回顾了部分常用排序算法,包括冒泡排序,快速排序,选择排序,插入排序,希尔排序,以及归并排序。

  • 稳定性和算法复杂度

稳定性:飞机插毛,即归并排序,基数排序,插入排序,冒泡排序是稳定的。
平均算法复杂度:快堆龟,即快速排序,堆排序,归并排序是nlogn。
参考blog,含gif演示,注意:该文章中的算法有误。

继续阅读Java实现常用排序算法

 
本文内容转自冰部落,仅供学习交流,版权归原作者所有,如涉及侵权,请联系删除。

声明:
本平台/个人所提供的关于股票的信息、分析和讨论,仅供投资者进行研究和参考之用。
我们不对任何股票进行明确的买入或卖出推荐。
投资者在做出投资决策时,应自行进行充分的研究和分析,并谨慎评估自己的风险承受能力和投资目标。
投资有风险,入市需谨慎。请投资者根据自身的判断和风险承受能力,自主决策,理性投资。

机器学习常用算法

前言

初学机器学习的时候,Milo毫无方向感。看过Ng的机器学习,看过《机器学习实战》,看过《西瓜书》,虽然对机器学习有个大概的了解,但仍无法很熟练地说出每个算法的具体内容,以及算法所属类别。

无意间,在CSDN上找到了一份大纲,感觉豁然开朗。特此转载,日后将逐渐完善每个算法的相关学习和介绍。

以下是算法大纲:

继续阅读机器学习常用算法

 
本文内容转自冰部落,仅供学习交流,版权归原作者所有,如涉及侵权,请联系删除。

声明:
本平台/个人所提供的关于股票的信息、分析和讨论,仅供投资者进行研究和参考之用。
我们不对任何股票进行明确的买入或卖出推荐。
投资者在做出投资决策时,应自行进行充分的研究和分析,并谨慎评估自己的风险承受能力和投资目标。
投资有风险,入市需谨慎。请投资者根据自身的判断和风险承受能力,自主决策,理性投资。