亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 學院 > 開發設計 > 正文

在Java和.NET平臺的加密術比較

2019-11-18 16:58:27
字體:
來源:轉載
供稿:網友

最近在寫一個java的消息服務器,同時需要做一個.NET版本的客戶端。他們之間需要安全通訊,基于一些簡單的密碼協議,用到公鑰加密、對稱加密、Hash算法。這個過程中,我對這兩個平臺的加密部分有了一定了解,以下也是我的一些新的認識吧。

1、對稱加密
1) Java 1.5的對稱加密很簡單,提供的算法也較多??梢哉f是,使用簡單,傻瓜式,而且功能齊全。
例如:
SecretKeySpec skeySpec = new SecretKeySpec(key, "AES");

Cipher cipher = Cipher.getInstance("AES");
cipher.init(Cipher.DECRYPT_MODE, skeySpec);
byte[] decryptText = cipher.doFinal(data);
2) .NET 2.0的對稱加密,缺省加密模式是CBC,CBC加密的時候,需要一個密鑰的同時,還需要初始化向量IV,這會使得初學入者使用起來不方便,這個問題到是十分容易對付的,修改一下配置就好了。
SymmetricAlgorithm algorithm = SymmetricAlgorithm.Create(algorithmName);
algorithm.Mode = CipherMode.ECB;
algorithm.Key = key;
algorithm.Padding = PaddingMode.PKCS7;通過這種設置之后,就能夠跟Java通訊操作,互為加密解密。

3) .NET 2.0和Java 1.5方面,加密算法的名字有些地方稍有差別。
AES <==> Rijndael
DESede <==> TripleDES
這是似乎是常識。


2、公鑰加密算法RSA
1) Java 1.5中,RSAPublicKey進行getEncoded()得到字節數組是ASN.1編碼的。逆轉回來需要使用X509EncodedKeySpec,這個細節需要閱讀文檔細節或者對密碼學有一定了解才知道。例如:
//public key ==> bytes
PublicKey publicKey =
byte[] rawPublicKey = publicKey.getEncoded();

// bytes ==> public key
X509EncodedKeySpec x509KeySpec = new X509EncodedKeySpec(rawPublicKey);
KeyFactory keyFactory = KeyFactory.getInstance("RSA");
Key newPublicKey = keyFactory.generatePublic(x509KeySpec);
除此之外,Java的公鑰加密部分,還是相當易于使用的。風格依然是功能簡單,傻瓜式使用,功能齊全。

Java中,支持ASN.1編碼,但是隱藏其中,使用者完全覺察不到。

2) .NET 2.0中,設計有些混亂,并不支持ASN.1編碼。但是Mono似乎在做ASN.1編碼的支持。為此我自己借鑒一個Java開元JCE的實現,實現了一個.NET版本的ASN Parser和ASN Builder,花了兩天時間。如下:
public static RSAParameters ASN1ToPublicKey(byte[] rawPublicKey)
{
    ASN1InputStream asnInput = new ASN1InputStream(rawPublicKey);
    ASN1Sequence asnSeq = (ASN1Sequence)asnInput.ReadObject();
    SubjectPublicKeyInfo subjectPublicKeyInfo = new SubjectPublicKeyInfo(asnSeq);

    DERObjectIdentifier algOid = subjectPublicKeyInfo.AlgorithmId.ObjectId;

    RSAPublicKeyStructure pubKey = new RSAPublicKeyStructure(
            (ASN1Sequence)subjectPublicKeyInfo.PublicKey);

    byte[] modulus = pubKey.Modulus;
    byte[] publicExponent = pubKey.PublicExponent;

    RSAParameters PRam = new RSAParameters();
    pram.Modulus = modulus;
    pram.Exponent = publicExponent;

    RSACryptoServiceProvider rsa = new RSACryptoServiceProvider();
    rsa.ImportParameters(pram);

    return pram;
}

public static byte[] PublicKeyToASN1(RSAParameters pram)
{
    SubjectPublicKeyInfo info = new SubjectPublicKeyInfo(
        new AlgorithmIdentifier(PKCSObjectIdentifiers.rsaEncryption,
                new DERNull()), new RSAPublicKeyStructure(pram.Modulus, pram.Exponent).DERObject);

    byte[] rawPublicKey = info.GetDEREncoded();
    return rawPublicKey;
}

3、總體感覺
1) Java的安全模塊設計得還是很好的,簡單易用,功能也齊全。
2) .NET 2.0則是有點亂,命名風格和系統框架有些不協調,功能欠缺,代碼組織的不夠理想。
3) 在Mono中,對安全的支持要比微軟已發布的要好,從網上可以看到,.NET Framework 2.0的一些特性也是從Mono中借鑒過來的。
4) 甚至可以認為,.NET加密模塊的開發團隊能力可能不是很強。就如那一句話“編寫糟糕的代碼并非我們的專利”。
http://www.49028c.com/jobs/archive/2006/09/22/512297.html


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
视频在线观看99| 在线观看免费高清视频97| 亚洲区bt下载| 成人性生交大片免费看小说| 成人黄色片在线| 国产91色在线| 精品中文字幕在线观看| 久久99国产精品久久久久久久久| 色综合91久久精品中文字幕| 国产精品久久久久久久av电影| 中文亚洲视频在线| 亚洲在线视频福利| 久久精品国产久精国产思思| 俺去了亚洲欧美日韩| 欧美激情精品久久久久久久变态| 欧美大片免费看| 有码中文亚洲精品| 欧美午夜精品久久久久久浪潮| 亚洲人成免费电影| 亚洲性无码av在线| 97欧美精品一区二区三区| 精品欧美aⅴ在线网站| 国产精品6699| 国产精品自拍网| 国产精品爽爽ⅴa在线观看| 欧美日韩亚洲网| 国产大片精品免费永久看nba| 国产视频精品自拍| 欧美做受高潮电影o| 中文字幕精品久久久久| 亚洲精品一区中文字幕乱码| 麻豆国产精品va在线观看不卡| 国产精品99久久99久久久二8| 国内精品400部情侣激情| 国产欧美亚洲视频| 日韩欧美高清在线视频| 亚洲自拍偷拍色图| 91免费欧美精品| 日韩免费av片在线观看| 国产国产精品人在线视| 日韩av在线天堂网| 亚洲第一区在线| 久久免费精品日本久久中文字幕| 日韩有码在线播放| 欧美亚洲激情在线| 国产精品观看在线亚洲人成网| 欧美视频一区二区三区…| 精品视频偷偷看在线观看| 国产盗摄xxxx视频xxx69| 欧美黑人一级爽快片淫片高清| 亚洲欧美另类人妖| 日韩精品在线观看一区| 久久久久久国产精品三级玉女聊斋| www.美女亚洲精品| 亚洲级视频在线观看免费1级| 国产精品久久久久久久久久三级| 欧美一级免费视频| 在线日韩中文字幕| 日韩av在线导航| 国产精品精品一区二区三区午夜版| 欧美亚洲激情在线| 国产美女精彩久久| 国产一区二区三区高清在线观看| 国产精品96久久久久久| 成人在线免费观看视视频| 国产精品女主播| 97碰碰碰免费色视频| 欧美日韩日本国产| 日韩国产欧美精品在线| 久久男人av资源网站| 丝袜美腿精品国产二区| 久久精品视频在线播放| 亚洲免费高清视频| 欧美高清在线视频观看不卡| 欧美激情图片区| 色婷婷综合成人| 久久国产精品久久国产精品| 2019中文字幕在线| 亚洲天堂av女优| 一道本无吗dⅴd在线播放一区| 伊人精品在线观看| 亚洲一区二区三区四区在线播放| 精品动漫一区二区| 久久久噜噜噜久久久| 日韩国产一区三区| 亚洲九九九在线观看| 日韩毛片中文字幕| 欧美俄罗斯乱妇| 国产91精品久久久久| 国产精品盗摄久久久| 亚洲欧美另类国产| 久久久久国色av免费观看性色| 国产精品美女av| 91精品国产自产在线观看永久| 欧美在线欧美在线| 97国产真实伦对白精彩视频8| 成人福利免费观看| 不卡伊人av在线播放| 中文字幕久精品免费视频| 欧美日韩亚洲精品内裤| 亚洲国产高清自拍| 97国产真实伦对白精彩视频8| 亚洲福利视频网站| 在线丨暗呦小u女国产精品| 欧美在线影院在线视频| 欧美极品少妇xxxxⅹ喷水| 久久免费精品视频| 成人亚洲欧美一区二区三区| 国内精品一区二区三区| 国产亚洲精品久久久久久牛牛| 亚洲国产日韩一区| 久久影视电视剧免费网站清宫辞电视| 日韩精品在线视频| 欧美寡妇偷汉性猛交| 精品久久久久久久久中文字幕| 伊人伊成久久人综合网站| 怡红院精品视频| 欧美日韩在线免费| 欧美精品久久久久久久| 日韩欧美成人区| 日本精品久久久久影院| 亚洲free性xxxx护士hd| 国产欧美中文字幕| 日韩美女福利视频| 国外成人免费在线播放| 国产成人拍精品视频午夜网站| 国产原创欧美精品| 欧美亚洲国产成人精品| 欧美丰满少妇xxxxx做受| 九九九久久国产免费| 欧美日韩午夜视频在线观看| 欧美大奶子在线| 久久国产精品首页| 怡红院精品视频| 久久精品成人一区二区三区| 久久久久中文字幕| 国内精品视频久久| 亚洲精品98久久久久久中文字幕| 欧美激情一二三| 国产亚洲精品久久久久久777| 国产v综合v亚洲欧美久久| 精品久久久久久久久国产字幕| 欧美精品九九久久| 91在线观看免费| 亚洲成年人影院在线| 国产精品美女在线观看| 久久久精品一区二区三区| 97视频在线观看成人| 国产ts一区二区| 久久成人亚洲精品| 欧美福利视频网站| 成人激情电影一区二区| 日韩欧美在线观看视频| 91超碰中文字幕久久精品| 久久久久久这里只有精品| 国产精品99免视看9| 3344国产精品免费看| 亚洲第一区中文99精品| 日韩av男人的天堂| 欲色天天网综合久久| 日韩有码在线电影| 国模极品一区二区三区| 久久久久久久国产| 97人人模人人爽人人喊中文字|