Warning: error_log(/data/www/wwwroot/hmttv.cn/caches/error_log.php): failed to open stream: Permission denied in /data/www/wwwroot/hmttv.cn/phpcms/libs/functions/global.func.php on line 537 Warning: error_log(/data/www/wwwroot/hmttv.cn/caches/error_log.php): failed to open stream: Permission denied in /data/www/wwwroot/hmttv.cn/phpcms/libs/functions/global.func.php on line 537 成人99国产精品,免费高清日本中文,免费**毛片在线播放视

          整合營銷服務(wù)商

          電腦端+手機(jī)端+微信端=數(shù)據(jù)同步管理

          免費(fèi)咨詢熱線:

          安全架構(gòu)進(jìn)階五之?dāng)?shù)字簽名

          安全架構(gòu)進(jìn)階五之?dāng)?shù)字簽名

          字簽名

          簽名認(rèn)證是對非對稱加密技術(shù)與數(shù)字摘要技術(shù)的綜合運(yùn)用,指的是將通信內(nèi)容的摘要信息使用發(fā)送者的私鑰進(jìn)行加密,然后將密文與原文一起傳輸給信息的接受者,接收者通過發(fā)送者的公鑰解密被加密的摘要信息,然后使用與發(fā)送者項(xiàng)目的摘要算法,對接收到的內(nèi)容采用相同的方式產(chǎn)生摘要串,與解密的摘要串進(jìn)行對比,如果相同,則說明接收到的內(nèi)容是完整的,在傳輸過程中沒有受到第三方篡改,否則說明通信內(nèi)容已被第三方篡改。

          通過前面對非對稱加密算法的介紹,我們可以得知,每個(gè)人都有其持有的私鑰,且都是對外界保密的,而通過私鑰加密的信息,只能通過其對應(yīng)的公鑰才能解密。因此,私鑰可以代表私鑰持有者的身份,可以通過私鑰對應(yīng)的公鑰來對私鑰擁有者身份進(jìn)行校驗(yàn)。通過數(shù)字簽名,能夠確認(rèn)信息是由信息發(fā)送方簽名并發(fā)送出來的,因此其他人根本假冒不來消息發(fā)送方的簽名,他們沒有消息發(fā)送者的私鑰,如果傳輸內(nèi)容在中途被篡改,對應(yīng)的數(shù)字簽名的值也將發(fā)生改變。

          只有信息的發(fā)送者才能產(chǎn)生別人無法偽造的數(shù)字簽名串,這個(gè)串能對信息發(fā)送者發(fā)送的內(nèi)容完整性和發(fā)送者的身份校驗(yàn)和鑒別,如圖:

          參考國外一篇文章:http://www.youdzone.com/signature.html

          數(shù)字簽名功能

          數(shù)字簽名是一種將現(xiàn)實(shí)世界中的蓋章、簽字的功能,在計(jì)算機(jī)世界中進(jìn)行實(shí)現(xiàn)的技術(shù)。使用數(shù)字簽名可以識別篡改、偽造、防止抵賴否則。 主要三個(gè)要點(diǎn):

          (1) 防止消息篡改,解決完整性問題

          (2) 防止消息偽造,解決鑒權(quán)問題

          (3) 防止抵賴否認(rèn),解決否認(rèn)問題

          數(shù)字簽名也是一種可以證明我就是我的技術(shù)

          生成簽名

          一般來說,不直接對消息進(jìn)行簽名,而是對消息的哈希值進(jìn)行簽名。 生成步驟:

          (1)對消息進(jìn)行哈希計(jì)算,得到哈希值

          (2)利用私鑰對哈希值進(jìn)行加密,生成簽名

          (3)將簽名附加在消息后面,一起發(fā)送過去

          驗(yàn)證簽名

          (1)收到消息后,提取消息中的簽名

          (2)用公鑰對簽名進(jìn)行解密,得到哈希值1。

          (3)對消息中的正文進(jìn)行哈希計(jì)算,得到哈希值2。

          (4)比較哈希值1和哈希值2,如果相同,則驗(yàn)證成功。

          常見的數(shù)字簽名

          (1) MD5withRSA 數(shù)字簽名

          (2)SHA1withRSA

          MD5withRSA

          很容易理解,MD5withRSA 算法表示采用 MD5 算法 生成需要發(fā)送正文的數(shù)字簽名,并使用RSA 算法來對正文進(jìn)行加密和解密。

          MD5withRSA 算法實(shí)現(xiàn):

          public class MD5withRSA {
          
              /**
               * 生成摘要
               */
              public static byte[] sign(byte[] content, PrivateKey privateKey) throws Exception {
                  MessageDigest md=MessageDigest.getInstance("MD5");
                  byte[] bytes=md.digest(content);
                  Cipher cipher=Cipher.getInstance("RSA");
                  cipher.init(Cipher.ENCRYPT_MODE, privateKey);
                  byte[] encryptBytes=cipher.doFinal(bytes);
          
                  return encryptBytes;
              }
          
              /**
               * 驗(yàn)簽
               */
              public static boolean verify(byte[] content, byte[] sign, PublicKey publicKey) throws Exception {
                  MessageDigest md=MessageDigest.getInstance("MD5");
                  byte[] bytes=md.digest(content);
                  Cipher cipher=Cipher.getInstance("RSA");
                  cipher.init(Cipher.DECRYPT_MODE, publicKey);
          
                  byte[] decryptBytes=cipher.doFinal(bytes);
          
                  BASE64Encoder base64Encoder=new BASE64Encoder();
          
                 return base64Encoder.encode(decryptBytes).equals(base64Encoder.encode(sign));
              }
          }

          SHA1withRSA 算法的流程與 MD5withRSA算法的流程完全一致,只是簽名算法換成了SHA-1算法而已。

          里只會(huì)介紹一些常用的標(biāo)簽:

          h標(biāo)簽 h標(biāo)簽是一個(gè)標(biāo)題標(biāo)簽 h1 h2 h3 h4 h5 h6 h1最大以此類推 h6最小

          它的特點(diǎn)就是加粗 獨(dú)自一行

          就是一個(gè)文章的內(nèi)容的標(biāo)題



          代碼


          圖1


          圖2

          圖1中的HTML中的各種標(biāo)簽是標(biāo)題 數(shù)字是內(nèi)容

          圖2河南省應(yīng)急管理廳:洪澇災(zāi)害已致33人遇難8人失蹤是標(biāo)題 下邊是內(nèi)容

          p標(biāo)簽是段落標(biāo)簽,一個(gè)p標(biāo)簽就是一段話。


          可以看到這些字都是用p標(biāo)簽包著的。p標(biāo)簽可以用來寫多個(gè)段落的文章。

          接下來就是img標(biāo)簽 img標(biāo)簽就是用來插入圖像的



          代碼

          圖3

          src是寫圖片的地址或者url(地址)


          alt屬性保證那些文字確實(shí)為那些看不到圖像的人提供了說明信息 作用就是圖片如果顯示不出來的話你在alt里邊填寫的文字就會(huì)顯示出來。


          沒出來的圖

          接下來就是超鏈接標(biāo)簽也是最神奇的一個(gè)標(biāo)簽

          a標(biāo)簽就是超鏈接標(biāo)簽 它可以從一個(gè)網(wǎng)站點(diǎn)擊一個(gè)按鈕或者一個(gè)文字跳轉(zhuǎn)到你連接的網(wǎng)站

          href里邊是寫你要跳轉(zhuǎn)的地址或者別的路徑后邊括號里是寫你要顯示的文字

          例子:


          代碼



          運(yùn)行


          跳轉(zhuǎn)

          以上就是HTML中個(gè)別標(biāo)簽的介紹和使用方法,如果有其他想了解的可以評論留言。


          最近幾天河南暴雨頻發(fā),祝河南的人民挺過難關(guān),加油!災(zāi)難無情人有情。

          在前端開發(fā)中經(jīng)常會(huì)遇到這樣一種需求,使用Javascript格式化數(shù)字進(jìn)行輸出。最常見的是金額,比如人民幣最小表示單位為分,一般需要精確到小數(shù)點(diǎn)后兩位數(shù)字,而且整數(shù)位每隔三位數(shù)字需要用逗號隔開。

          今天我們就一起來看看如何使用原生Javascript和開源類庫來實(shí)現(xiàn)這樣一種功能吧。

          感興趣的可以自行去github上去看源碼,github地址為:

          https://github.com/zhouxiongking/article-pages/blob/master/articles/formatNumber/formatNumber.js

          Javascript

          原生JS實(shí)現(xiàn)方法1

          首先我們看看最簡單的實(shí)現(xiàn)方法,需要達(dá)到這樣的目的。

          輸入一串?dāng)?shù)字或者字符串,最后返回格式化后的字符串,每隔3位用逗號分隔,通過四舍五入保留小數(shù)點(diǎn)后2兩位。

          我們來分析下方法的實(shí)現(xiàn)過程。

          1. 替換掉原本傳入數(shù)據(jù)中可能出現(xiàn)的'$'和',',然后判斷是否為數(shù)字。

          2. 判斷傳入的數(shù)字是正數(shù)還是負(fù)數(shù)。

          3. 判斷小數(shù)位數(shù)的舍入性。

          4. 每隔三位,添加一個(gè)逗號。

          5. 重新拼接字符串,正負(fù)號+整數(shù)位+小數(shù)點(diǎn)+小數(shù)位

          根據(jù)上述的分析過程,得到的代碼如下。

          方法1

          原生JS實(shí)現(xiàn)方法2

          第二種實(shí)現(xiàn)方法可以選擇保留小數(shù)位數(shù),它的做法如下。

          1. 將傳入的數(shù)字或者字符串轉(zhuǎn)化為float類型數(shù)據(jù),并進(jìn)行四舍五入

          2. 用小數(shù)點(diǎn)進(jìn)行分割,并將整數(shù)位逆序

          3. 對于整數(shù)位,每隔三位添加一個(gè)逗號

          4. 再次進(jìn)行逆序,得到正確的整數(shù)位后拼接小數(shù)位。

          通過上述的分析,得到代碼如下。

          方法2

          原生JS實(shí)現(xiàn)方法3

          方法3中,是一個(gè)最全面的實(shí)現(xiàn),可以選擇向上,向下或者四舍五入來保留小數(shù)位數(shù);同時(shí)可以選擇小數(shù)點(diǎn)符號和千分位符號。

          為了讓方法的代碼看起來更清晰,將方法拆分成兩個(gè)function,每個(gè)function實(shí)現(xiàn)自己的功能。

          第一個(gè)function作為入口函數(shù),主要包含小數(shù)位的處理,千分位符號位的處理,以及最后返回結(jié)果的處理。

          主function

          第二個(gè)function的主要功能是根據(jù)傳入的參數(shù)對數(shù)字進(jìn)行取整或者四舍五入。

          第二個(gè)function

          針對以上的方法,我們可以通過代碼測試。

          測試結(jié)果

          開源庫

          在這里也推薦兩款非常好用的用于格式化數(shù)字的開源庫Numeral.js和accounting.js,兩者都可以格式化貨幣,百分比,時(shí)間,幾個(gè)小數(shù)位數(shù),千分位等等

          Numeral.js的github地址為:

          https://github.com/adamwdraper/Numeral-js

          目前在Github上超過5K的star,而且呈現(xiàn)增長的趨勢。

          accounting.js的github地址為:

          https://github.com/openexchangerates/accounting.js

          目前在github上有超過3K的star,可以說是非常受歡迎。

          這里簡要介紹下Numeral.js的用法。

          • 使用

          在瀏覽器中使用,可以通過以下代碼去實(shí)現(xiàn)。

          使用

          • 格式化

          通過給numeral傳遞數(shù)字,然后通過format方法進(jìn)行數(shù)字的格式化。

          格式化數(shù)字

          數(shù)字格式化的規(guī)則如下。

          數(shù)字格式化規(guī)則

          其他的類似于貨幣,字節(jié),百分?jǐn)?shù),時(shí)間,科學(xué)計(jì)數(shù)等的格式化規(guī)則大家可以去官網(wǎng)看看。

          結(jié)束語

          今天這篇文章主要講解了如何格式化數(shù)字成指定的格式,包括原生JS實(shí)現(xiàn)以及后面推薦的幾個(gè)開源類庫,希望能對大家有幫助。


          主站蜘蛛池模板: 亚洲AV成人一区二区三区观看| 国模吧一区二区三区| 国产传媒一区二区三区呀| 精品一区二区三区影院在线午夜 | 高清一区二区三区视频| 日韩一区二区三区无码影院| 国产成人高清精品一区二区三区 | 91久久精品午夜一区二区| 国产伦一区二区三区高清 | 久久精品视频一区| 久久国产精品视频一区| 中文字幕无线码一区| 国产精品男男视频一区二区三区 | 成人午夜视频精品一区| 国产一区内射最近更新| 人妻无码久久一区二区三区免费| 国产精品视频一区二区三区不卡| 亚洲日本久久一区二区va| 国产精品视频一区二区噜噜| 国产亚洲自拍一区| 成人影片一区免费观看| 国产丝袜美女一区二区三区 | 国产精品香蕉一区二区三区| 精品人妻无码一区二区三区蜜桃一 | 成人无码一区二区三区| 国产精品毛片VA一区二区三区| 国产精品高清一区二区三区| 中日韩精品无码一区二区三区| 精品亚洲福利一区二区| 色一情一乱一伦一区二区三区日本| 久久久久人妻精品一区三寸蜜桃| 久久青草精品一区二区三区| 蜜臀AV无码一区二区三区| 亚洲国产一区明星换脸| 国产精品视频一区二区三区经| 国产一区美女视频| 无码人妻一区二区三区免费| 国产在线aaa片一区二区99| 亚洲一区精彩视频| 熟妇人妻系列av无码一区二区| 精品熟人妻一区二区三区四区不卡 |