久久久久久久av_日韩在线中文_看一级毛片视频_日本精品二区_成人深夜福利视频_武道仙尊动漫在线观看

<i id='YaW64'><tr id='YaW64'><dt id='YaW64'><q id='YaW64'><span id='YaW64'><b id='YaW64'><form id='YaW64'><ins id='YaW64'></ins><ul id='YaW64'></ul><sub id='YaW64'></sub></form><legend id='YaW64'></legend><bdo id='YaW64'><pre id='YaW64'><center id='YaW64'></center></pre></bdo></b><th id='YaW64'></th></span></q></dt></tr></i><div class="qwawimqqmiuu" id='YaW64'><tfoot id='YaW64'></tfoot><dl id='YaW64'><fieldset id='YaW64'></fieldset></dl></div>
<tfoot id='YaW64'></tfoot>
    <legend id='YaW64'><style id='YaW64'><dir id='YaW64'><q id='YaW64'></q></dir></style></legend>

    <small id='YaW64'></small><noframes id='YaW64'>

        • <bdo id='YaW64'></bdo><ul id='YaW64'></ul>

      1. 在 C# 中解密用 3DES 加密的 ColdFusion 中的字符串

        Decrypting a string in ColdFusion encrypted with 3DES in C#(在 C# 中解密用 3DES 加密的 ColdFusion 中的字符串)

            • <bdo id='bjoQ2'></bdo><ul id='bjoQ2'></ul>
                • <legend id='bjoQ2'><style id='bjoQ2'><dir id='bjoQ2'><q id='bjoQ2'></q></dir></style></legend>
                  <i id='bjoQ2'><tr id='bjoQ2'><dt id='bjoQ2'><q id='bjoQ2'><span id='bjoQ2'><b id='bjoQ2'><form id='bjoQ2'><ins id='bjoQ2'></ins><ul id='bjoQ2'></ul><sub id='bjoQ2'></sub></form><legend id='bjoQ2'></legend><bdo id='bjoQ2'><pre id='bjoQ2'><center id='bjoQ2'></center></pre></bdo></b><th id='bjoQ2'></th></span></q></dt></tr></i><div class="qwawimqqmiuu" id='bjoQ2'><tfoot id='bjoQ2'></tfoot><dl id='bjoQ2'><fieldset id='bjoQ2'></fieldset></dl></div>

                  <tfoot id='bjoQ2'></tfoot>

                    <tbody id='bjoQ2'></tbody>

                  <small id='bjoQ2'></small><noframes id='bjoQ2'>

                  本文介紹了在 C# 中解密用 3DES 加密的 ColdFusion 中的字符串的處理方法,對(duì)大家解決問題具有一定的參考價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)吧!

                  問題描述

                  限時(shí)送ChatGPT賬號(hào)..

                  我們很難在 ColdFusion 中解密之前使用 3DES 和 C# 加密的字符串.這是我們最初用來加密字符串的代碼:

                  We are having difficulty decrypting a string in ColdFusion that was previously encrypted with 3DES and C#. Here is the code we used to encrypt the string initially:

                      public static string EncryptTripleDES(string plaintext, string key)
                      {
                      TripleDESCryptoServiceProvider DES = new TripleDESCryptoServiceProvider();
                      MD5CryptoServiceProvider hashMD5 = new MD5CryptoServiceProvider();
                      DES.Key = hashMD5.ComputeHash(ASCIIEncoding.ASCII.GetBytes(key));
                      DES.Mode = CipherMode.ECB;
                      ICryptoTransform DESEncrypt = DES.CreateEncryptor();
                      byte[] Buffer = ASCIIEncoding.ASCII.GetBytes(plaintext);
                  
                      string EncString = Convert.ToBase64String(DESEncrypt.TransformFinalBlock(Buffer, 0, Buffer.Length));
                      EncString = EncString.Replace("+", "@@12");
                  
                      return EncString;
                      }
                  

                  我們已嘗試使用此處的建議:

                  We have tried using the suggestions here:

                  TripleDES 加密 - .NET 和 ColdFusion 效果不佳

                  ..沒有運(yùn)氣.這是我們的 CF 代碼和錯(cuò)誤:

                  ..with no luck. Here is our CF code and the error:

                    <cfset variables.theKey = "blahblah" />
                    <cfset variables.theAlgorithm = "DESede/CBC/PKCS5Padding">
                    <cfset variables.theEncoding = "Base64">
                    <cfset strTest = decrypt(#DB.PASSWORD#, variables.theKey, variables.theAlgorithm, variables.theEncoding)>
                  

                  錯(cuò)誤返回:嘗試加密或解密輸入字符串時(shí)出錯(cuò):''無法解碼字符串blahblah"

                  Error returned: An error occurred while trying to encrypt or decrypt your input string: '' Can not decode string "blahblah"

                  所以,看起來它是在嘗試解密密鑰而不是字符串,但這不是 ColdFusion 中解密函數(shù)的概述方式.有什么想法嗎?

                  So, it looks like it's trying to decrypt the key and not the string, but that's not how the decrypt function is outlined in ColdFusion. Any ideas?

                  更新:嘗試使用以下 CF 代碼,但返回的錯(cuò)誤仍然是嘗試加密或解密您的輸入字符串時(shí)發(fā)生錯(cuò)誤:未正確填充最終塊."

                  UPDATE: Attempted to use the following CF code, but the error returned is still "An error occurred while trying to encrypt or decrypt your input string: Given final block not properly padded."

                  <cfset dbPassword  = "Hx41SYUrmnFPa31QCH1ArCHN1YOF8IAL">
                  <cfset finalText   = replace(dbPassword, "@@12", "+", "all")>
                  <cfset theKey      = "abcdefgh">
                  <cfset theKeyInBase64 = toBase64(theKey)>
                  <cfset hashedKey   = hash( theKeyInBase64, "md5" )>
                  <cfset padBytes    = left( hashedKey, 16 )>
                  <cfset keyBytes    = binaryDecode( hashedKey & padBytes , "hex" )>
                  <cfset finalKey    = binaryEncode( keyBytes, "base64" )>
                  <cfset decrypted = decrypt( finalText, finalKey, "DESede/ECB/PKCS5Padding", "base64" )>
                  Decrypted String: <cfdump var="#decrypted#">
                  

                  更新:

                  如果您關(guān)注評(píng)論,解決方案是更改:

                  The solution if you follow the comments was to change:

                  <cfset hashedKey   = hash( theKeyInBase64, "md5" )>
                  

                  收件人:

                  <cfset hashedKey   = hash( theKey, "md5" )>
                  

                  最后的代碼是這樣的:

                  <cfset dbPassword  = "Hx41SYUrmnFPa31QCH1ArCHN1YOF8IAL">
                  <cfset finalText   = replace(dbPassword, "@@12", "+", "all")>
                  <cfset theKey      = "abcdefgh">
                  <cfset hashedKey   = hash( theKey, "md5" )>
                  <cfset padBytes    = left( hashedKey, 16 )>
                  <cfset keyBytes    = binaryDecode( hashedKey & padBytes , "hex" )>
                  <cfset finalKey    = binaryEncode( keyBytes, "base64" )>
                  <cfset decrypted = decrypt( finalText, finalKey, "DESede/ECB/PKCS5Padding", "base64" )>
                  Decrypted String: <cfdump var="#decrypted#">
                  

                  推薦答案

                  看起來你的 c# 函數(shù)中需要處理一些額外的曲折以實(shí)現(xiàn)兼容性:

                  Looks like there a few extra twists in your c# function you need to handle to achieve compatibility:

                  1. .NET 函數(shù)修改加密字符串.你需要反轉(zhuǎn)這些更改,以便解密將其識(shí)別為有效的 base64:

                  1. The .NET function modifies the encrypted string. You need to reverse those changes so decrypt will recognize it as valid base64:

                  <!--- reverse replacements in encrypted text ie #DB.Password# --->
                  <cfset dbPassword = "uAugP@@12aP4GGBOLCLRqxlNPL1PSHfTNEZ">
                  <cfset finalText = replace(dbPassword, "@@12", "+", "all")>
                  

                • 該函數(shù)還使用創(chuàng)建 16 字節(jié)密鑰的哈希.CF/java 需要 24 字節(jié)密鑰.因此,您必須首先對(duì)密鑰進(jìn)行哈希處理,然后 將其填充到適當(dāng)?shù)拈L(zhǎng)度.否則,decrypt() 會(huì)抱怨密鑰太小.

                • The function also uses a hash which creates a 16 byte key. CF/java require a 24 byte key for that algorithm. So you must first hash the key and pad it to the proper length. Otherwise, decrypt() will complain the key is too small.

                  注意:CF 還期望最終密鑰是 base64 編碼的.錯(cuò)誤 Can not decode string "blahblah" 表明您的輸入鍵不在 base64 中.

                  Note: CF also expects the final key to be base64 encoded. The error Can not decode string "blahblah" suggests your input key is not in base64.

                  <!--- hash and pad the key (ie "blahblah"), then convert to base64 for CF --->
                  <cfset theKeyInBase64 = "rpaSPvIvVLlrcmtzPU9/c67Gkj7yL1S5">
                  <cfset hashedKey   = hash( theKeyInBase64, "md5" )>
                  <cfset padBytes    = left( hashedKey, 16 )>
                  <cfset keyBytes    = binaryDecode( hashedKey & padBytes , "hex" )>
                  <cfset finalKey    = binaryEncode( keyBytes, "base64" )>
                  

                • 最后,反饋模式必須匹配.由于 .NET 代碼使用安全性較低的 ECB 模式,CF 代碼也必須使用該模式.

                • Finally, the feedback modes must match. Since the .NET code uses the less secure ECB mode, the CF code must use that mode as well.

                  <!--- .net code uses the less secure ECB mode --->
                  <cfset decrypted = decrypt( finalText, finalKey, "DESede/ECB/PKCS5Padding", "base64" )>
                  Decrypted String: <cfdump var="#decrypted#">
                  

                • 另一個(gè)需要注意的問題是編碼.在 CF 中,加密/解密始終將輸入字符串解釋為 UTF8,而 .NET 函數(shù)使用 ASCII.為了完全兼容,雙方應(yīng)使用相同的編碼,在本例中為 UTF8.

                • One other issue to watch out for is encoding. In CF, encrypt/decrypt always interpret the input string as UTF8, whereas the .NET function uses ASCII. For full compatibility, both sides should use the same encoding, in this case UTF8.

                  <小時(shí)>

                  更新:

                  我使用任意 8 個(gè)字符的密鑰(而不是 base64 字符串)對(duì)上述內(nèi)容進(jìn)行了測(cè)試,CF9 仍然正確解密了該字符串.

                  I tested the above with an arbitrary 8 character key (instead of a base64 string) and CF9 still decrypted the string properly.

                  // .NET Code
                  String text = "some text to encrypt";
                  String key = "abcdefgh";
                  String encrypted = EncryptTripleDES(text, key);
                  // result: encrypted=Hx41SYUrmnFPa31QCH1ArCHN1YOF8IAL
                  Console.WriteLine("encrypted={0}", encrypted);
                  
                  <!--- same code, only the encrypted text and key changed ---> 
                  <cfset dbPassword  = "Hx41SYUrmnFPa31QCH1ArCHN1YOF8IAL">
                  <cfset finalText   = replace(dbPassword, "@@12", "+", "all")>
                  <cfset theKey      = "abcdefgh">
                  <cfset hashedKey   = hash( theKey, "md5" )>
                  .... 
                  

                  這篇關(guān)于在 C# 中解密用 3DES 加密的 ColdFusion 中的字符串的文章就介紹到這了,希望我們推薦的答案對(duì)大家有所幫助,也希望大家多多支持html5模板網(wǎng)!

                  【網(wǎng)站聲明】本站部分內(nèi)容來源于互聯(lián)網(wǎng),旨在幫助大家更快的解決問題,如果有圖片或者內(nèi)容侵犯了您的權(quán)益,請(qǐng)聯(lián)系我們刪除處理,感謝您的支持!
                • 相關(guān)文檔推薦

                  What are good algorithms for vehicle license plate detection?(車牌檢測(cè)有哪些好的算法?)
                  onClick event for Image in Unity(Unity中圖像的onClick事件)
                  Running Total C#(運(yùn)行總 C#)
                  Deleting a directory when clicked on a hyperlink with JAvascript.ASP.NET C#(單擊帶有 JAvascript.ASP.NET C# 的超鏈接時(shí)刪除目錄)
                  asp.net listview highlight row on click(asp.net listview 在單擊時(shí)突出顯示行)
                  Calling A Button OnClick from a function(從函數(shù)調(diào)用按鈕 OnClick)
                    1. <legend id='KamIP'><style id='KamIP'><dir id='KamIP'><q id='KamIP'></q></dir></style></legend>

                      <small id='KamIP'></small><noframes id='KamIP'>

                        <bdo id='KamIP'></bdo><ul id='KamIP'></ul>

                      • <i id='KamIP'><tr id='KamIP'><dt id='KamIP'><q id='KamIP'><span id='KamIP'><b id='KamIP'><form id='KamIP'><ins id='KamIP'></ins><ul id='KamIP'></ul><sub id='KamIP'></sub></form><legend id='KamIP'></legend><bdo id='KamIP'><pre id='KamIP'><center id='KamIP'></center></pre></bdo></b><th id='KamIP'></th></span></q></dt></tr></i><div class="qwawimqqmiuu" id='KamIP'><tfoot id='KamIP'></tfoot><dl id='KamIP'><fieldset id='KamIP'></fieldset></dl></div>

                          <tfoot id='KamIP'></tfoot>
                              <tbody id='KamIP'></tbody>
                            主站蜘蛛池模板: 久艹在线| 免费在线成人 | 国产一级片在线 | 日韩精品极品视频在线观看免费 | 国产精品欧美在线 | av一区二区在线观看 | 久久国产影院 | 综合一区二区三区 | 天天撸夜夜操 | 91蝌蚪少妇偷拍 | aaa国产精品 | 欧美日韩国产中文 | 精品国产一区二区三 | 精品一区在线 | 日韩一区二区三区在线播放 | 成人在线观看免费爱爱 | 欧美日韩91 | av免费看片 | 国产精品视频免费看 | 国产一区二区在线观看视频 | 成人亚洲天堂 | 色接久久 | 欧美国产一区二区 | 国产成人av网站 | 看一级黄色片 | 青青草国产在线视频 | 人人艹人人爱 | 国产精品少妇 | 国产精品毛片一区二区在线看 | 日韩精品久久久久久久酒店 | 一级黄色片网站 | 91久久久久国产一区二区 | 欧美日韩精品在线观看 | www国产视频 | 久久精品人人 | 毛片av在线 | 色污污 | 欧美成人一级 | 国产激情在线视频 | 日韩特级 | 免费在线观看av |