cryptohack block ciphers

一、ECB CBC WTF

题目:

from Crypto.Cipher import AES


KEY = ?
FLAG = ?


@chal.route('/ecbcbcwtf/decrypt//')
def decrypt(ciphertext):
    ciphertext = bytes.fromhex(ciphertext)

    cipher = AES.new(KEY, AES.MODE_ECB)
    try:
        decrypted = cipher.decrypt(ciphertext)
    except ValueError as e:
        return {"error": str(e)}

    return {"plaintext": decrypted.hex()}


@chal.route('/ecbcbcwtf/encrypt_flag/')
def encrypt_flag():
    iv = os.urandom(16)

    cipher = AES.new(KEY, AES.MODE_CBC, iv)
    encrypted = cipher.encrypt(FLAG.encode())
    ciphertext = iv.hex() + encrypted.hex()

    return {"ciphertext": ciphertext}

hint:

Here you can encrypt in CBC but only decrypt in ECB. That shouldn't be a weakness because they're different modes... right?

译文:

在这里,您可以在CBC中加密,但只能在ECB中解密。这不应该是一个弱点,因为它们是不同的模式……对吧?

思路:

本题告诉了我们用CBC模式进行加密,但使用ECB进行解密,其中,我们已经知道了CBC模式中加密的IV值的大小,我们又已经知道了将密文用ECB解密的值,通过CBC模式的解密结构,我们知道将第一段密文解密后于IV进行异或运算既是原明文,而第一段密文则是第二段密文加密的IV值,所以解密时将其反过来用,作为IV解密即可:

wp:

import requests
from Crypto.Util.number import *
result=requests.get('http://aes.cryptohack.org/ecbcbcwtf/encrypt_flag')
ciphertext=result.json()["ciphertext"]
# print(result.text)

# print(len(bytes.fromhex(ciphertext)))
ciphertext=bytes.fromhex(ciphertext)
c1=hex(bytes_to_long(ciphertext[0:16]))[2:]
c2=hex(bytes_to_long(ciphertext[16:32]))[2:]
c3=hex(bytes_to_long(ciphertext[32:48]))[2:]
print(c1)
print(c2)
print(c3)

# C=hex(bytes_to_long(ciphertext))
# print(c1)
# print(c2)
# print(c3)
# c1=0x9d2691928a24ed9215416815e80164d1
# c2=0xf77ea0b2c315db6b56a48c8250b0c9b8
# c3=0x6a61b98b2e5d26af3976d7c36a76a847
# k1=int(c1) ^ int(c2)
# k3=int(c2) ^ int(c3)
a1=requests.get(f'http://aes.cryptohack.org/ecbcbcwtf/decrypt/{c2}')
a2=requests.get(f'http://aes.cryptohack.org/ecbcbcwtf/decrypt/{c3}')
m1=a1.json()["plaintext"]
m2=a2.json()["plaintext"]
M1=int(m1,16)^int(c1,16)
M2=int(m2,16)^int(c2,16)
print(long_to_bytes(M1)+long_to_bytes(M2))

 二、ECB Oracle

题目:

from Crypto.Cipher import AES
from Crypto.Util.Padding import pad, unpad


KEY = ?
FLAG = ?


@chal.route('/ecb_oracle/encrypt//')
def encrypt(plaintext):
    plaintext = bytes.fromhex(plaintext)

    padded = pad(plaintext + FLAG.encode(), 16)
    cipher = AES.new(KEY, AES.MODE_ECB)
    try:
        encrypted = cipher.encrypt(padded)
    except ValueError as e:
        return {"error": str(e)}

    return {"ciphertext": encrypted.hex()}</code></pre> 
  <h3>hint:</h3> 
  <blockquote> 
   <p>ECB is the most simple mode, with each plaintext block encrypted entirely independently. In this case, your input is prepended to the secret flag and encrypted and that's it. We don't even provide a decrypt function. Perhaps you don't need a padding oracle when you have an "ECB oracle"?</p> 
   <p><em>译文:</em></p> 
   <p>ECB是最简单的模式,每个明文块完全独立加密。在本例中,您的输入被预先添加到秘密标志并加密,仅此而已。我们甚至不提供解密函数。或许当你有了“欧洲央行的预言者”,你就不需要填充预言了?</p> 
  </blockquote> 
  <h3>思路:</h3> 
  <p> 本题为一道典型的ECB加密解密问题,首先,我们即不知道明文也不知道密文。我们可以发现题目中给与了我们加密算法,所以我们可以自己设置明文代入进行尝试:</p> 
  <pre><code class="language-python">import requests
from tqdm import tqdm
from Crypto.Util.number import *
# m = ''
for i in range(30):
    m = i*'61'
    result = requests.get(f'http://aes.cryptohack.org/ecb_oracle/encrypt/{m}')
    try:
        a = result.json()["ciphertext"]
        print(i,len(a)//2)
    except:
        pass</code></pre> 
  <p>从输出的值中,我们可以发现代码在第6和第22时发生改变。于是,我们可以推断明文为26bits长(32 - 6、48 - 22),而加密算法中是以16bits为块进行加密和解密(22 - 6)。</p> 
  <p>所以,我们可以代入15*a进行加密,这样前16为就为15 * a加上明文第一位,接着,我们对十六位进行暴力破解即可得到我们所需的明文第一位,第一到第十五位都为这个思路:</p> 
  <pre><code class="language-python">k=''
for i in range(15):
    m = '61'*(15-i)
    print(bytes.fromhex(m))
    result = requests.get(f'http://aes.cryptohack.org/ecb_oracle/encrypt/{m}')
    m = result.json()["ciphertext"]
    m1 = m[:32]
    # print(m1)
    for j in range(32,127):
        m = '61' * (15-i) + k
        m += str(hex(j)[2:])
        result1 = requests.get(f'http://aes.cryptohack.org/ecb_oracle/encrypt/{m}')
        n = result1.json()["ciphertext"]
        n1 = n[:32]
        # print(n1)
        try:
            if n1 == m1:
                k += str(hex(j)[2:])
                print(bytes.fromhex(k))
                break
        except:
            pass

# b'crypto{p3n6u1n5'</code></pre> 
  <p>后11位思路类似,仅需要我们将代码扩张到前32位进行暴力破解运算:</p> 
  <pre><code class="language-python">k='63727970746f7b70336e3675316e35'
for i in range(11):
    m = '61'*(16-i)
    print(bytes.fromhex(m))
    result = requests.get(f'http://aes.cryptohack.org/ecb_oracle/encrypt/{m}')
    m = result.json()["ciphertext"]
    m1 = m[32:64]
    # print(m1)
    for j in range(32,127):
        m = '61' * (16-i) + k
        m += str(hex(j)[2:])
        result1 = requests.get(f'http://aes.cryptohack.org/ecb_oracle/encrypt/{m}')
        n = result1.json()["ciphertext"]
        n1 = n[32:64]
        # print(n1)
        try:
            if n1 == m1:
                k += str(hex(j)[2:])
                print(bytes.fromhex(k))
                break
        except:
            pass</code></pre> 
  <h3>wp:</h3> 
  <pre><code class="language-python">import requests
from tqdm import tqdm
from Crypto.Util.number import *
# m = ''
# for i in range(30):
#     m = i*'61'
#     result = requests.get(f'http://aes.cryptohack.org/ecb_oracle/encrypt/{m}')
#     try:
#         a = result.json()["ciphertext"]
#         print(i,len(a)//2)
#     except:
#         pass

k=''
for i in range(15):
    m = '61'*(15-i)
    print(bytes.fromhex(m))
    result = requests.get(f'http://aes.cryptohack.org/ecb_oracle/encrypt/{m}')
    m = result.json()["ciphertext"]
    m1 = m[:32]
    # print(m1)
    for j in range(32,127):
        m = '61' * (15-i) + k
        m += str(hex(j)[2:])
        result1 = requests.get(f'http://aes.cryptohack.org/ecb_oracle/encrypt/{m}')
        n = result1.json()["ciphertext"]
        n1 = n[:32]
        # print(n1)
        try:
            if n1 == m1:
                k += str(hex(j)[2:])
                print(bytes.fromhex(k))
                break
        except:
            pass

# b'crypto{p3n6u1n5'

k='63727970746f7b70336e3675316e35'
for i in range(11):
    m = '61'*(16-i)
    print(bytes.fromhex(m))
    result = requests.get(f'http://aes.cryptohack.org/ecb_oracle/encrypt/{m}')
    m = result.json()["ciphertext"]
    m1 = m[32:64]
    # print(m1)
    for j in range(32,127):
        m = '61' * (16-i) + k
        m += str(hex(j)[2:])
        result1 = requests.get(f'http://aes.cryptohack.org/ecb_oracle/encrypt/{m}')
        n = result1.json()["ciphertext"]
        n1 = n[32:64]
        # print(n1)
        try:
            if n1 == m1:
                k += str(hex(j)[2:])
                print(bytes.fromhex(k))
                break
        except:
            pass</code></pre> 
  <h1>三、FLIPPING COOKIE</h1> 
  <h3>题目:</h3> 
  <pre><code class="language-python">from Crypto.Cipher import AES
import os
from Crypto.Util.Padding import pad, unpad
from datetime import datetime, timedelta


KEY = ?
FLAG = ?


@chal.route('/flipping_cookie/check_admin/<cookie>/<iv>/')
def check_admin(cookie, iv):
    cookie = bytes.fromhex(cookie)
    iv = bytes.fromhex(iv)

    try:
        cipher = AES.new(KEY, AES.MODE_CBC, iv)
        decrypted = cipher.decrypt(cookie)
        unpadded = unpad(decrypted, 16)
    except ValueError as e:
        return {"error": str(e)}

    if b"admin=True" in unpadded.split(b";"):
        return {"flag": FLAG}
    else:
        return {"error": "Only admin can read the flag"}


@chal.route('/flipping_cookie/get_cookie/')
def get_cookie():
    expires_at = (datetime.today() + timedelta(days=1)).strftime("%s")
    cookie = f"admin=False;expiry={expires_at}".encode()

    iv = os.urandom(16)
    padded = pad(cookie, 16)
    cipher = AES.new(KEY, AES.MODE_CBC, iv)
    encrypted = cipher.encrypt(padded)
    ciphertext = iv.hex() + encrypted.hex()

    return {"cookie": ciphertext}</code></pre> 
  <h3>hint:</h3> 
  <blockquote> 
   <p>You can get a cookie for my website, but it won't help you read the flag... I think.</p> 
   <p><em>译文:</em></p> 
   <p>你可以为我的网站获得一块cookie,但它不会帮助你读flag…我认为。</p> 
  </blockquote> 
  <h3>思路: </h3> 
  <p>这是一到典型的CBC字节翻转问题,我们已知CBC的加密模式,其中,第一段密文为第一段明文于IV进行异或运算再进行AES加密,最终得到我们所需的第一段密文,第二段相比第一段既是将输入的IV改为我们求得的第一段密文。</p> 
  <p>我们已知第一段明文为:</p> 
  <pre>a1 = b'admin=False;expi'</pre> 
  <p>我们需要将admin改为True,从而让网站以为我们拥有网站的控制权,因为我们通过代码可知,当admin=True;时网站会返回我们flag值。所以我们需要构建一个新的IV使密文被加密后为True,从而骗过网站。</p> 
  <p>Dec (m1) = c1 ^ IV</p> 
  <p>c1_new  = Dec (m1) ^ IV_new</p> 
  <p>其中,各个条件我们都已知,除了IV_new,于是,我们可以构建出IV_new,并将新的IV返回到网站中输入,最终求得flag。</p> 
  <h3>wp:</h3> 
  <pre><code class="language-python">import requests
from Crypto.Util.number import *

result = requests.get('http://aes.cryptohack.org/flipping_cookie/get_cookie')
m = result.json()["cookie"]
M = bytes.fromhex(m)
# print(m)
IV = m[:32]
k = m[32:]

a1 = b'admin=False;expi'
a2 = b'admin=True;00000'
m1=hex(bytes_to_long(a1))
m2=hex(bytes_to_long(a2))
# print(m1)
IV_new = int(m1,16)^int(m2,16)^int(IV,16)
# print(IV_new)
IV_new = hex(IV_new)[2:]
print(IV_new)
result2 = requests.get(f'http://aes.cryptohack.org/flipping_cookie/check_admin/{k}/{IV_new}')
l = result2.json()
print(l)
</code></pre> 
  <h1>四、LAZY CBC</h1> 
  <h3>题目:</h3> 
  <pre><code class="language-python">from Crypto.Cipher import AES


KEY = ?
FLAG = ?


@chal.route('/lazy_cbc/encrypt/<plaintext>/')
def encrypt(plaintext):
    plaintext = bytes.fromhex(plaintext)
    if len(plaintext) % 16 != 0:
        return {"error": "Data length must be multiple of 16"}

    cipher = AES.new(KEY, AES.MODE_CBC, KEY)
    encrypted = cipher.encrypt(plaintext)

    return {"ciphertext": encrypted.hex()}


@chal.route('/lazy_cbc/get_flag/<key>/')
def get_flag(key):
    key = bytes.fromhex(key)

    if key == KEY:
        return {"plaintext": FLAG.encode().hex()}
    else:
        return {"error": "invalid key"}


@chal.route('/lazy_cbc/receive/<ciphertext>/')
def receive(ciphertext):
    ciphertext = bytes.fromhex(ciphertext)
    if len(ciphertext) % 16 != 0:
        return {"error": "Data length must be multiple of 16"}

    cipher = AES.new(KEY, AES.MODE_CBC, KEY)
    decrypted = cipher.decrypt(ciphertext)

    try:
        decrypted.decode() # ensure plaintext is valid ascii
    except UnicodeDecodeError:
        return {"error": "Invalid plaintext: " + decrypted.hex()}

    return {"success": "Your message has been received"}

</code></pre> 
  <h3>hint:</h3> 
  <blockquote> 
   <p>I'm just a lazy dev and want my CBC encryption to work. What's all this talk about initialisations vectors? Doesn't sound important.</p> 
   <p><em>译文:</em></p> 
   <p>我只是一个懒惰的开发人员,希望我的CBC加密工作。这些关于初始化向量的讨论是怎么回事?听起来不重要。</p> 
  </blockquote> 
  <h3>思路:</h3> 
  <p>在这道题中,我们有密文的生成代码,和密文的解密代码,以及flag的获得代码</p> 
  <p>CBC的生成思路:</p> 
  <p>c1 = Dec(m1) ^ IV  ——(1)</p> 
  <p>c2 = Dec(m2) ^ m1  ——(2)</p> 
  <p>c3 = Dec(m3) ^ m2  ——(3)</p> 
  <p>由于密文明文我们都可以自己设置,于是我们不妨让m2==0;m1=m3,于是让(1)和(3)进行异或运算,可以求得我们所需的IV值,将其返回网站即可:</p> 
  <h3>wp:</h3> 
  <pre><code class="language-python">import requests
from Crypto.Util.number import *
# a = b'0'*16
# A = hex(bytes_to_long(a))
# print(A)

b = '61616161616161616161616161616161'*3
result = requests.get(f'http://aes.cryptohack.org/lazy_cbc/encrypt/{b}')
m = result.json()["ciphertext"]
print(m)
k1 = m[:32] + '0'*32 + m[:32]
k = requests.get(f'http://aes.cryptohack.org/lazy_cbc/receive/{k1}')
k=k.json()
print(k)

b1 = '6161616161616161616161616161616116874d46ae7c02bcd5fe3d27fcba5b60966f8a5cc032ff235c45da24d505e288'
# result1 = requests.get(f'http://aes.cryptohack.org/lazy_cbc/encrypt/{b1}')
# result1 = result1.json()
# print(result1)

key = hex(int(b1[:32],16)^int(b1[64:96],16))[2:]
print(key)
m = requests.get(f'http://aes.cryptohack.org/lazy_cbc/get_flag/{key}')
m = m.json()
print(m)


M = 0x63727970746f7b35306d335f703330706c335f64306e375f3768316e6b5f49565f31355f316d70307237346e375f3f7d
print(long_to_bytes(int(M)))</code></pre> 
  <p></p> 
 </div> 
</div>
                            </div>
                        </div>
                    </div>
                    <!--PC和WAP自适应版-->
                    <div id="SOHUCS" sid="1647375062698856448"></div>
                    <script type="text/javascript" src="/views/front/js/chanyan.js"></script>
                    <!-- 文章页-底部 动态广告位 -->
                    <div class="youdao-fixed-ad" id="detail_ad_bottom"></div>
                </div>
                <div class="col-md-3">
                    <div class="row" id="ad">
                        <!-- 文章页-右侧1 动态广告位 -->
                        <div id="right-1" class="col-lg-12 col-md-12 col-sm-4 col-xs-4 ad">
                            <div class="youdao-fixed-ad" id="detail_ad_1"> </div>
                        </div>
                        <!-- 文章页-右侧2 动态广告位 -->
                        <div id="right-2" class="col-lg-12 col-md-12 col-sm-4 col-xs-4 ad">
                            <div class="youdao-fixed-ad" id="detail_ad_2"></div>
                        </div>
                        <!-- 文章页-右侧3 动态广告位 -->
                        <div id="right-3" class="col-lg-12 col-md-12 col-sm-4 col-xs-4 ad">
                            <div class="youdao-fixed-ad" id="detail_ad_3"></div>
                        </div>
                    </div>
                </div>
            </div>
        </div>
    </div>
    <div class="container">
        <h4 class="pt20 mb15 mt0 border-top">你可能感兴趣的:(crypto,python,开发语言)</h4>
        <div id="paradigm-article-related">
            <div class="recommend-post mb30">
                <ul class="widget-links">
                    <li><a href="/article/1941718717696110592.htm"
                           title="【剪裁Patch】已标注的WSI剪裁Patch的处理流程(以QuPath软件得到的标注信息为例)" target="_blank">【剪裁Patch】已标注的WSI剪裁Patch的处理流程(以QuPath软件得到的标注信息为例)</a>
                        <span class="text-muted">X CODE</span>
<a class="tag" taget="_blank" href="/search/WSI/1.htm">WSI</a><a class="tag" taget="_blank" href="/search/%E7%97%85%E7%90%86%E5%9B%BE%E5%83%8F/1.htm">病理图像</a><a class="tag" taget="_blank" href="/search/QuPath/1.htm">QuPath</a><a class="tag" taget="_blank" href="/search/Python/1.htm">Python</a>
                        <div>1.整体处理思路整体处理流程如图所示,概括来说就是:根据标注信息将WSI区分为肿瘤区域和正常区域,对这个区域进行采样裁剪得到具有Patch级别标签的Patch。当然,这里的Patch标签是根据标注信息决定的,如果标注的是癌症亚型信息,那么也可以将不同亚型的Patch区分出来。那么下面就对每个步骤进行介绍以及提供具体的Python代码。2.详细步骤(提供代码)2.0标注文件示例以下是用QuPath软</div>
                    </li>
                    <li><a href="/article/1941715440778670080.htm"
                           title="23.5.15---在python中读取excel表格数据并可视化" target="_blank">23.5.15---在python中读取excel表格数据并可视化</a>
                        <span class="text-muted">多一点灵性</span>
<a class="tag" taget="_blank" href="/search/python/1.htm">python</a><a class="tag" taget="_blank" href="/search/matplotlib/1.htm">matplotlib</a><a class="tag" taget="_blank" href="/search/%E5%BC%80%E5%8F%91%E8%AF%AD%E8%A8%80/1.htm">开发语言</a><a class="tag" taget="_blank" href="/search/%E6%9C%BA%E5%99%A8%E5%AD%A6%E4%B9%A0/1.htm">机器学习</a>
                        <div>目录1.在python中通过以下代码可以防止运行结果出现中文乱码的情况(如画图时)2.在将excel表格文件中的数据读取出来,并将其中的两列数据作为行列坐标用图画出来2.1设置坐标轴显示的刻度及范围3.在PythonConsole清除运行的控制台数据使用:1.在python中通过以下代码可以防止运行结果出现中文乱码的情况(如画图时)##设置字符集,防止中文乱码importmatplotlibasm</div>
                    </li>
                    <li><a href="/article/1941713423985340416.htm"
                           title="从零到精通:Linux上的Conda环境详细教程" target="_blank">从零到精通:Linux上的Conda环境详细教程</a>
                        <span class="text-muted"></span>

                        <div>第一章:Conda简介Conda的定义Conda是一个开源的包管理系统和环境管理系统,可以在多个平台上安装、运行和更新软件包和依赖项。Conda最初是为Python和R语言的数据科学包创建的,但现在支持多种编程语言和工具。Conda的主要功能和优势包管理:Conda能够自动处理包的依赖关系,确保每个包所需的库和工具都被正确安装。它支持从各种渠道安装包,如CondaForge和Anaconda官方仓</div>
                    </li>
                    <li><a href="/article/1941713297191530496.htm"
                           title="Briefcase 项目常见问题解决方案" target="_blank">Briefcase 项目常见问题解决方案</a>
                        <span class="text-muted">刘梓苹</span>

                        <div>Briefcase项目常见问题解决方案briefcaseToolstosupportconvertingaPythonprojectintoastandalonenativeapplication.项目地址:https://gitcode.com/gh_mirrors/br/briefcase1.项目基础介绍和主要编程语言Briefcase是一个由BeeWare项目开发的工具,旨在帮助开发者将Py</div>
                    </li>
                    <li><a href="/article/1941712918282301440.htm"
                           title="Ubuntu20.04切换源" target="_blank">Ubuntu20.04切换源</a>
                        <span class="text-muted">dongdundun</span>
<a class="tag" taget="_blank" href="/search/ubuntu/1.htm">ubuntu</a><a class="tag" taget="_blank" href="/search/linux/1.htm">linux</a><a class="tag" taget="_blank" href="/search/%E8%BF%90%E7%BB%B4/1.htm">运维</a>
                        <div>一、ubuntu20.04系统重装二、工具安装1.更换Ubuntu源更换conda源更换pip源2.安装QQqq闪退卸载安装wine版QQ3.安装搜狗输入法及中文设置安装搜狗输入法中文设置4.安装vim5.安装google6.安装VsCode7.安装python3的opencv8.安装向日葵向日葵闪退9.ubuntu下识别不到U盘10.安装Typora11.安装百度网盘12.安装ceres库(优化</div>
                    </li>
                    <li><a href="/article/1941712157909512192.htm"
                           title="yolov5/v7/v8/v9/v10环境详细配置教程(Windows+conda+pycharm)" target="_blank">yolov5/v7/v8/v9/v10环境详细配置教程(Windows+conda+pycharm)</a>
                        <span class="text-muted">视觉算法er</span>
<a class="tag" taget="_blank" href="/search/%E6%B7%B1%E5%BA%A6%E5%AD%A6%E4%B9%A0%E7%8E%AF%E5%A2%83%E9%85%8D%E7%BD%AE/1.htm">深度学习环境配置</a><a class="tag" taget="_blank" href="/search/YOLO/1.htm">YOLO</a><a class="tag" taget="_blank" href="/search/%E7%9B%AE%E6%A0%87%E6%A3%80%E6%B5%8B/1.htm">目标检测</a><a class="tag" taget="_blank" href="/search/%E4%BA%BA%E5%B7%A5%E6%99%BA%E8%83%BD/1.htm">人工智能</a><a class="tag" taget="_blank" href="/search/%E6%B7%B1%E5%BA%A6%E5%AD%A6%E4%B9%A0/1.htm">深度学习</a><a class="tag" taget="_blank" href="/search/conda/1.htm">conda</a><a class="tag" taget="_blank" href="/search/pycharm/1.htm">pycharm</a>
                        <div>一、所需环境配置1.1.虚拟环境创建首先,打开AnacondaPrompt命令窗口,创建一个新的虚拟环境,后面的包都在这个环境中安装。创建命令是:我的习惯是使用3.8版本的python,你也可以换成更高版本;condacreate-nyolopython=3.8输入命令后,运行结果如下:输入y即可;1.2.激活虚拟环境安装完成后,即可激活虚拟环境,输入以下命令即可;condaactivateyol</div>
                    </li>
                    <li><a href="/article/1941711524498305024.htm"
                           title="Python 领域 Conda 的集群环境部署经验" target="_blank">Python 领域 Conda 的集群环境部署经验</a>
                        <span class="text-muted"></span>

                        <div>Python领域Conda的集群环境部署经验关键词:Conda、Python环境管理、集群部署、环境复制、依赖管理、虚拟环境、Anaconda摘要:本文深入探讨了在集群环境中使用Conda进行Python环境部署的最佳实践。我们将从Conda的核心概念出发,详细讲解环境创建、依赖管理、环境复制和集群部署的全流程。文章包含实际案例、性能优化技巧和常见问题解决方案,旨在帮助读者掌握高效、可靠的Pyth</div>
                    </li>
                    <li><a href="/article/1941711524993232896.htm"
                           title="Python pip与Conda环境的兼容性问题" target="_blank">Python pip与Conda环境的兼容性问题</a>
                        <span class="text-muted"></span>

                        <div>Pythonpip与Conda环境的兼容性问题关键词:Python环境管理、pip与conda冲突、依赖解析、虚拟环境、包管理、兼容性解决方案、依赖冲突摘要:本文深入探讨Python生态中pip和conda两种主流包管理工具的兼容性问题。我们将从底层机制分析冲突根源,通过具体案例展示常见问题场景,并提供多种解决方案和最佳实践。文章包含详细的依赖解析算法分析、环境隔离技术比较,以及通过实际代码演示如</div>
                    </li>
                    <li><a href="/article/1941706601392041984.htm"
                           title="python中操作数据库" target="_blank">python中操作数据库</a>
                        <span class="text-muted">seiseilalei</span>
<a class="tag" taget="_blank" href="/search/python/1.htm">python</a><a class="tag" taget="_blank" href="/search/%E6%95%B0%E6%8D%AE%E5%BA%93/1.htm">数据库</a><a class="tag" taget="_blank" href="/search/python/1.htm">python</a><a class="tag" taget="_blank" href="/search/sql/1.htm">sql</a>
                        <div>python中cursor操作数据库(转)原文出处:http://doudouclever.blog.163.com/blog/static/175112310201284115340663/python操作数据库,要安装一个Python和数据库交互的包MySQL-python-1.2.2.win32-py2.5.exe,然后我们就可以使用MySQLdb这个包进行数据库操作了。操作步骤如下:1、建</div>
                    </li>
                    <li><a href="/article/1941706222440869888.htm"
                           title="Python:爬虫基础《爬取红楼梦》" target="_blank">Python:爬虫基础《爬取红楼梦》</a>
                        <span class="text-muted"></span>

                        <div>小说爬虫项目说明文档用于爬取诗词名句网上小说内容的Python爬虫项目。本项目以《红楼梦》为例,演示如何爬取完整的小说内容。项目功能爬取小说的所有章节名称获取每个章节的URL链接下载并保存每个章节的内容到独立的文本文件自动创建存储目录包含基本的错误处理和请求延迟环境要求Python3.x依赖包:requestsbeautifulsoup4logging安装依赖pipinstallrequestsb</div>
                    </li>
                    <li><a href="/article/1941705460830760960.htm"
                           title="python之数据库操作" target="_blank">python之数据库操作</a>
                        <span class="text-muted">婵婵子~</span>
<a class="tag" taget="_blank" href="/search/python/1.htm">python</a><a class="tag" taget="_blank" href="/search/%E6%95%B0%E6%8D%AE%E5%BA%93/1.htm">数据库</a><a class="tag" taget="_blank" href="/search/python/1.htm">python</a>
                        <div>python操作sqlserver数据库python标准数据库接口为pythonDB-API,具体可参考:https://wiki.python.org/moin/DatabaseInterfacesPython的DB-API,为大多数的数据库实现了接口,使用它连接各数据库后,就可以用相同的方式操作各数据库。PythonDB-API使用流程:引入API模块。获取与数据库的连接。执行SQL语句和存储</div>
                    </li>
                    <li><a href="/article/1941690192737923072.htm"
                           title="JuPyter(IPython) Notebooks中使用pip安装Python的模块" target="_blank">JuPyter(IPython) Notebooks中使用pip安装Python的模块</a>
                        <span class="text-muted">weixin_34218890</span>
<a class="tag" taget="_blank" href="/search/%E5%BC%80%E5%8F%91%E5%B7%A5%E5%85%B7/1.htm">开发工具</a><a class="tag" taget="_blank" href="/search/python/1.htm">python</a><a class="tag" taget="_blank" href="/search/%E4%BA%BA%E5%B7%A5%E6%99%BA%E8%83%BD/1.htm">人工智能</a>
                        <div>问题描述:没有带GPU的电脑,搞深度学习不是耍流氓嘛,我网上看到有个云平台,免费使用了一下,小姐姐很热情。使用过程如下:他们给的接口是Jupyter编辑平台,我就在上面跑了一个小例子。tensorflow和python环境是他们配置好的,不过我的例子中需要导入matplotlib.pylot模块。可是他们没有提供,怎么办呢?网上查了一下啊解决方法:采用如下方法:importpipdefMyPipi</div>
                    </li>
                    <li><a href="/article/1941685532077649920.htm"
                           title="Jupyter安装指南及Python配置" target="_blank">Jupyter安装指南及Python配置</a>
                        <span class="text-muted">CodeWG</span>
<a class="tag" taget="_blank" href="/search/python/1.htm">python</a><a class="tag" taget="_blank" href="/search/jupyter/1.htm">jupyter</a><a class="tag" taget="_blank" href="/search/ide/1.htm">ide</a><a class="tag" taget="_blank" href="/search/Python/1.htm">Python</a>
                        <div>Jupyter是一个非常流行的交互式计算环境,广泛用于数据分析、机器学习和科学计算等领域。本文将详细介绍如何安装Jupyter并配置Python环境。步骤1:安装Python首先,我们需要安装Python。请按照以下步骤进行操作:打开Python官方网站(https://www.python.org)并下载适用于您操作系统的最新版本的Python。运行下载的安装程序,并按照向导的指示进行安装。在安</div>
                    </li>
                    <li><a href="/article/1941676963022303232.htm"
                           title="Python 变量、数据类型、数据类型的转换介绍" target="_blank">Python 变量、数据类型、数据类型的转换介绍</a>
                        <span class="text-muted">cs_mengxi</span>
<a class="tag" taget="_blank" href="/search/Python/1.htm">Python</a><a class="tag" taget="_blank" href="/search/python/1.htm">python</a><a class="tag" taget="_blank" href="/search/%E5%BC%80%E5%8F%91%E8%AF%AD%E8%A8%80/1.htm">开发语言</a>
                        <div>介绍【Python变量、数据类型、数据类型的转换】变量什么是变量python中,变量是存储数据的标识符。通过变量我们可以将数据赋值给名称,再程序中通过引用这个名称去访问对应的数据常见的使用场景变量赋值:使用等号(=)将值赋给变量。x=5name=“John”同时为多个变量赋值a=b=c=1动态类型:Python是一种动态类型语言,变量的类型是根据赋给它的值自动推断的。同一个变量可以在不同的时间赋予</div>
                    </li>
                    <li><a href="/article/1941675322835529728.htm"
                           title="Python运算符简介" target="_blank">Python运算符简介</a>
                        <span class="text-muted">满目828</span>
<a class="tag" taget="_blank" href="/search/python/1.htm">python</a><a class="tag" taget="_blank" href="/search/%E5%BC%80%E5%8F%91%E8%AF%AD%E8%A8%80/1.htm">开发语言</a><a class="tag" taget="_blank" href="/search/%E5%88%9D%E5%AD%A6%E8%80%85/1.htm">初学者</a><a class="tag" taget="_blank" href="/search/%E8%BF%90%E7%AE%97%E7%AC%A6/1.htm">运算符</a>
                        <div>目录一.算术运算符二.赋值运算符三.比较运算符四.逻辑运算符五.其他运算符六.运算符优先级一.算术运算符算术运算符包含:+,-,*,/,**,//,%(注:在运算过程中如含有小数,则结果为float类型(小数))+(加法运算符)a=10b=20#+result=a+bprint(result)print(3+4)-(减法运算符)a=10b=20#-result=a-bprint(result)pr</div>
                    </li>
                    <li><a href="/article/1941669777445548032.htm"
                           title="Python scikit-learn 【机器学习库】全面讲解" target="_blank">Python scikit-learn 【机器学习库】全面讲解</a>
                        <span class="text-muted"></span>

                        <div>让AI成为我们的得力助手:《用Cursor玩转AI辅助编程——不写代码也能做软件开发》scikit-learn(简称sklearn)是Python最流行的机器学习库之一,提供简单高效的数据挖掘和数据分析工具。它基于NumPy、SciPy和Matplotlib构建,广泛应用于工业界和学术界。核心优势统一API设计:所有模型使用一致的接口(fit()、predict()、score())丰富的算法:覆</div>
                    </li>
                    <li><a href="/article/1941669651075362816.htm"
                           title="Jenkins集成GitHub实现自动化打标签实战指南" target="_blank">Jenkins集成GitHub实现自动化打标签实战指南</a>
                        <span class="text-muted">ivwdcwso</span>
<a class="tag" taget="_blank" href="/search/%E8%BF%90%E7%BB%B4%E4%B8%8E%E4%BA%91%E5%8E%9F%E7%94%9F/1.htm">运维与云原生</a><a class="tag" taget="_blank" href="/search/jenkins/1.htm">jenkins</a><a class="tag" taget="_blank" href="/search/github/1.htm">github</a><a class="tag" taget="_blank" href="/search/%E8%87%AA%E5%8A%A8%E5%8C%96/1.htm">自动化</a><a class="tag" taget="_blank" href="/search/CI%2FCD/1.htm">CI/CD</a><a class="tag" taget="_blank" href="/search/devops/1.htm">devops</a>
                        <div>本文将详细介绍如何使用Jenkins与GitHubAPI集成,实现自动化打标签的完整流程。以下是完整的Python脚本和详细解析。完整Python脚本#!/root/miniconda3/bin/pythonimportjsonimportboto3importosimportpytzimportargparsefromdatetimeimportdatetimefromgithubimportG</div>
                    </li>
                    <li><a href="/article/1941669021682298880.htm"
                           title="超详细yolov8/11-segment实例分割全流程概述:配置环境、数据标注、训练、验证/预测、onnx部署(c++/python)详解" target="_blank">超详细yolov8/11-segment实例分割全流程概述:配置环境、数据标注、训练、验证/预测、onnx部署(c++/python)详解</a>
                        <span class="text-muted"></span>

                        <div>因为yolo的检测/分割/姿态/旋转/分类模型的环境配置、训练、推理预测等命令非常类似,这里不再详细叙述,主要参考**【YOLOv8/11-detect目标检测全流程教程】**,下面有相关链接,这里主要针对数据标注、格式转换、模型部署等不同细节部分;【YOLOv8/11-detect目标检测全流程教程】超详细yolo8/11-detect目标检测全流程概述:配置环境、数据标注、训练、验证/预测、o</div>
                    </li>
                    <li><a href="/article/1941661835329597440.htm"
                           title="Python(28)Python循环语句指南:从语法糖到CPython字节码的底层探秘" target="_blank">Python(28)Python循环语句指南:从语法糖到CPython字节码的底层探秘</a>
                        <span class="text-muted">一个天蝎座白勺程序猿</span>
<a class="tag" taget="_blank" href="/search/Python%E7%88%AC%E8%99%AB%E5%85%A5%E9%97%A8%E5%88%B0%E9%AB%98%E9%98%B6%E5%AE%9E%E6%88%98/1.htm">Python爬虫入门到高阶实战</a><a class="tag" taget="_blank" href="/search/python/1.htm">python</a><a class="tag" taget="_blank" href="/search/%E5%BC%80%E5%8F%91%E8%AF%AD%E8%A8%80/1.htm">开发语言</a>
                        <div>目录引言一、推导式家族全解析1.1基础语法对比1.2性能对比测试二、CPython实现揭秘2.1字节码层面的秘密2.2临时变量机制三、高级特性实现3.1嵌套推导式优化3.2条件表达式处理四、性能优化指南4.1内存使用对比4.2执行时间优化技巧五、最佳实践建议六、总结Python爬虫相关文章(推荐)引言在Python编程中,循环语句是控制流程的核心工具。传统for循环虽然直观,但在处理大数据时往往面</div>
                    </li>
                    <li><a href="/article/1941659818599182336.htm"
                           title="1.1 python中定义变量与数据类型" target="_blank">1.1 python中定义变量与数据类型</a>
                        <span class="text-muted">乏眸</span>
<a class="tag" taget="_blank" href="/search/python/1.htm">python</a>
                        <div>一、定义变量1.定义变量语法:变量名=值2.使用变量3.看变量的特点#定义变量:存储数据TOMmy_name='TOM'print(my_name)#定义变量:存储数据SerendipityschoolName='Serendipity'print(schoolName)二、数据类型数值:int(整型),float(浮点型)布尔型:true(真),false(假)str(字符串),list(列表)</div>
                    </li>
                    <li><a href="/article/1941658680919388160.htm"
                           title="Python基础——变量和数据类型" target="_blank">Python基础——变量和数据类型</a>
                        <span class="text-muted">全端工程师</span>
<a class="tag" taget="_blank" href="/search/python%E5%9F%BA%E7%A1%80/1.htm">python基础</a><a class="tag" taget="_blank" href="/search/python/1.htm">python</a><a class="tag" taget="_blank" href="/search/%E5%BC%80%E5%8F%91%E8%AF%AD%E8%A8%80/1.htm">开发语言</a>
                        <div>Python基础——变量和数据类型前言一、什么是变量1.1为什么需要变量1.2变量的基本概念1.3变量的命名规则二、数据类型2.1什么是数据类型2.2使用`type()`函数2.3使用不同的数据类型三、类型转换3.1类型转换的基本概念3.2类型转换函数(显示类型转换)3.3隐式类型转换3.4类型转换的注意事项四、变量的使用五、总结前言今天我们开始学习Python编程的基础——变量和数据类型。这些概</div>
                    </li>
                    <li><a href="/article/1941658427914776576.htm"
                           title="Compython:在线Python代码托管与实时执行平台" target="_blank">Compython:在线Python代码托管与实时执行平台</a>
                        <span class="text-muted">古斯塔夫歼星炮</span>

                        <div>本文还有配套的精品资源,点击获取简介:Compython是一个在线平台,允许用户在浏览器中托管、分享并运行Python代码,适合编程初学者、教育者和开发者快速测试。该服务提供了Web交互式编程环境,并支持Markdown和版本控制。同时,为了安全起见,采用了沙箱环境以及对上传代码的审查。此外,用户可以结合HTML和Python创建交互式网页应用,平台提供JupyterNotebook风格的界面。服</div>
                    </li>
                    <li><a href="/article/1941657420619116544.htm"
                           title="python定义向量内积_Python 设计一个向量类,实现数据的输入、输出、向量的加法、减法、点积、夹角等计算..." target="_blank">python定义向量内积_Python 设计一个向量类,实现数据的输入、输出、向量的加法、减法、点积、夹角等计算...</a>
                        <span class="text-muted">weixin_39927623</span>
<a class="tag" taget="_blank" href="/search/python%E5%AE%9A%E4%B9%89%E5%90%91%E9%87%8F%E5%86%85%E7%A7%AF/1.htm">python定义向量内积</a>
                        <div>Python设计一个向量类,实现数据的输入、输出、向量的加法、减法、点积、夹角等计算练习题2018.10.25importmathclassVectors:def__init__(self):self.x1=0self.x2=0self.y1=0self.y2=0self.x=self.x2-self.x1self.y=self.y2-self.y1defadd(self):self.x1=int</div>
                    </li>
                    <li><a href="/article/1941656790848565248.htm"
                           title="python win32con_python win32com.client" target="_blank">python win32con_python win32com.client</a>
                        <span class="text-muted">weixin_39604598</span>
<a class="tag" taget="_blank" href="/search/python/1.htm">python</a><a class="tag" taget="_blank" href="/search/win32con/1.htm">win32con</a>
                        <div>#创建#wordw=win32com.client.Dispatch("Word.Application")w=win32com.client.DispatchEx("Word.Application")#使用启动独立的进程#excelxlApp=win32com.client.Dispatch("Excel.Application")#后台运行,不显示,不警告w.Visible=0;w.Disp</div>
                    </li>
                    <li><a href="/article/1941656664507740160.htm"
                           title="纯零基础小白设计的PyCharm + Django 5入门学习大纲001" target="_blank">纯零基础小白设计的PyCharm + Django 5入门学习大纲001</a>
                        <span class="text-muted">韩公子的Linux大集市</span>
<a class="tag" taget="_blank" href="/search/Python3%E6%95%B0%E6%8D%AE%E5%88%86%E6%9E%90/1.htm">Python3数据分析</a><a class="tag" taget="_blank" href="/search/pycharm/1.htm">pycharm</a><a class="tag" taget="_blank" href="/search/django/1.htm">django</a><a class="tag" taget="_blank" href="/search/%E5%AD%A6%E4%B9%A0/1.htm">学习</a>
                        <div>文章目录阶段1:预备知识(1-2天)阶段2:Django初体验(3-5天)阶段3:动手做网页(核心2周)阶段4:实战小项目(1周)阶段5:部署与进阶(可选)避坑指南(小白必看!)学习资源推荐以下是为纯零基础小白设计的PyCharm+Django5入门学习大纲,分阶段渐进式学习,含关键实操点:阶段1:预备知识(1-2天)Python基础速成变量、数据类型、条件语句(if)、循环(for/while)</div>
                    </li>
                    <li><a href="/article/1941656538296938496.htm"
                           title="mysql 内积_Python如何计算两行数据内积" target="_blank">mysql 内积_Python如何计算两行数据内积</a>
                        <span class="text-muted"></span>

                        <div>Python计算两行数据内积的方法:首先使用【mat()】方法;然后将每组数据分别放到方法里转换为矩阵;再使两矩阵相乘;最后进行转换即可。>>>a=mat([[1],[2],[3]]);>>>b=mat([[0],[2],[3]]);>>>amatrix([[1],[2],[3]])>>>bmatrix([[0],[2],[3]])>>>a.T*bmatrix([[13]])上面为两个列向量的内积</div>
                    </li>
                    <li><a href="/article/1941655274930630656.htm"
                           title="python 求向量间内积 和外积" target="_blank">python 求向量间内积 和外积</a>
                        <span class="text-muted"></span>

                        <div>#内积可以描述向量间的投影关系,大小为|a||b|cos⟨a,b⟩:python向量内积求向量长度:importnumpyasnpa=np.asarray([1,1,1])print(np.sqrt(a.dot(a</div>
                    </li>
                    <li><a href="/article/1941650734948872192.htm"
                           title="python内积 卷积" target="_blank">python内积 卷积</a>
                        <span class="text-muted">AI算法网奇</span>
<a class="tag" taget="_blank" href="/search/python%E5%9F%BA%E7%A1%80/1.htm">python基础</a><a class="tag" taget="_blank" href="/search/python/1.htm">python</a><a class="tag" taget="_blank" href="/search/%E5%BC%80%E5%8F%91%E8%AF%AD%E8%A8%80/1.htm">开发语言</a>
                        <div>内积就是点乘,卷积先取反。importnumpyasnpbb=[1,2]cc=[2,3]aa=np.dot(bb,cc)print(aa)dd=np.convolve([2,1],cc,'valid')print(dd)dd=np.convolve(bb,cc,'same')print(dd)dd=np.convolve(bb,cc,'full')print(dd)结果:8[8][27][276]</div>
                    </li>
                    <li><a href="/article/1941649601014591488.htm"
                           title="线性代数向量内积_向量的点积| 使用Python的线性代数" target="_blank">线性代数向量内积_向量的点积| 使用Python的线性代数</a>
                        <span class="text-muted">cumubi7453</span>
<a class="tag" taget="_blank" href="/search/python/1.htm">python</a><a class="tag" taget="_blank" href="/search/%E7%BA%BF%E6%80%A7%E4%BB%A3%E6%95%B0/1.htm">线性代数</a><a class="tag" taget="_blank" href="/search/%E6%9C%BA%E5%99%A8%E5%AD%A6%E4%B9%A0/1.htm">机器学习</a><a class="tag" taget="_blank" href="/search/numpy/1.htm">numpy</a><a class="tag" taget="_blank" href="/search/%E7%AE%97%E6%B3%95/1.htm">算法</a>
                        <div>线性代数向量内积Prerequisite:LinearAlgebra|DefiningaVector先决条件:线性代数|定义向量Linearalgebraisthebranchofmathematicsconcerninglinearequationsbyusingvectorspacesandthroughmatrices.Inotherwords,avectorisamatrixinn-dim</div>
                    </li>
                    <li><a href="/article/1941646574501294080.htm"
                           title="Python的变量与数据类型" target="_blank">Python的变量与数据类型</a>
                        <span class="text-muted">新人码农11111</span>
<a class="tag" taget="_blank" href="/search/python/1.htm">python</a><a class="tag" taget="_blank" href="/search/%E5%BC%80%E5%8F%91%E8%AF%AD%E8%A8%80/1.htm">开发语言</a>
                        <div>文章目录文章目录前言一、python的变量1.python的基本变量2.python的命名规则:二、python的数据类型1.2.整型(int)2.浮点型(float)3.字符串(str)4.布尔值(bool)5.空值(None)6.类型检测(type())三、python的数据类型转换1.整型转换(int())2.浮点型转换(float())3.字符串转换(str())4.布尔值转换(bool(</div>
                    </li>
                                <li><a href="/article/112.htm"
                                       title="HQL之投影查询" target="_blank">HQL之投影查询</a>
                                    <span class="text-muted">归来朝歌</span>
<a class="tag" taget="_blank" href="/search/HQL/1.htm">HQL</a><a class="tag" taget="_blank" href="/search/Hibernate/1.htm">Hibernate</a><a class="tag" taget="_blank" href="/search/%E6%9F%A5%E8%AF%A2%E8%AF%AD%E5%8F%A5/1.htm">查询语句</a><a class="tag" taget="_blank" href="/search/%E6%8A%95%E5%BD%B1%E6%9F%A5%E8%AF%A2/1.htm">投影查询</a>
                                    <div>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 在HQL查询中,常常面临这样一个场景,对于多表查询,是要将一个表的对象查出来还是要只需要每个表中的几个字段,最后放在一起显示? 
针对上面的场景,如果需要将一个对象查出来: 
HQL语句写“from 对象”即可 
Session session = HibernateUtil.openSession();
		</div>
                                </li>
                                <li><a href="/article/239.htm"
                                       title="Spring整合redis" target="_blank">Spring整合redis</a>
                                    <span class="text-muted">bylijinnan</span>
<a class="tag" taget="_blank" href="/search/redis/1.htm">redis</a>
                                    <div>pom.xml 
 

&lt;dependencies&gt;
		&lt;!-- Spring Data - Redis Library --&gt;
		&lt;dependency&gt;
			&lt;groupId&gt;org.springframework.data&lt;/groupId&gt;
			&lt;artifactId&gt;spring-data-redi</div>
                                </li>
                                <li><a href="/article/366.htm"
                                       title="org.hibernate.NonUniqueResultException: query did not return a unique result: 2" target="_blank">org.hibernate.NonUniqueResultException: query did not return a unique result: 2</a>
                                    <span class="text-muted">0624chenhong</span>
<a class="tag" taget="_blank" href="/search/Hibernate/1.htm">Hibernate</a>
                                    <div>参考:http://blog.csdn.net/qingfeilee/article/details/7052736 
org.hibernate.NonUniqueResultException: query did not return a unique result: 2 
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 在项目中出现了org.hiber</div>
                                </li>
                                <li><a href="/article/493.htm"
                                       title="android动画效果" target="_blank">android动画效果</a>
                                    <span class="text-muted">不懂事的小屁孩</span>
<a class="tag" taget="_blank" href="/search/android%E5%8A%A8%E7%94%BB/1.htm">android动画</a>
                                    <div>前几天弄alertdialog和popupwindow的时候,用到了android的动画效果,今天专门研究了一下关于android的动画效果,列出来,方便以后使用。 
 
Android 平台提供了两类动画。 一类是Tween动画,就是对场景里的对象不断的进行图像变化来产生动画效果(旋转、平移、放缩和渐变)。 
第二类就是 Frame动画,即顺序的播放事先做好的图像,与gif图片原理类似。 
 
</div>
                                </li>
                                <li><a href="/article/620.htm"
                                       title="js delete 删除机理以及它的内存泄露问题的解决方案" target="_blank">js delete 删除机理以及它的内存泄露问题的解决方案</a>
                                    <span class="text-muted">换个号韩国红果果</span>
<a class="tag" taget="_blank" href="/search/JavaScript/1.htm">JavaScript</a>
                                    <div>delete删除属性时只是解除了属性与对象的绑定,故当属性值为一个对象时,删除时会造成内存泄露&nbsp; (其实还未删除) 
举例: 

var person={name:{firstname:'bob'}}
var p=person.name
delete person.name
p.firstname  --&gt;'bob'
// 依然可以访问p.firstname,存在内存泄露</div>
                                </li>
                                <li><a href="/article/747.htm"
                                       title="Oracle将零干预分析加入网络即服务计划" target="_blank">Oracle将零干预分析加入网络即服务计划</a>
                                    <span class="text-muted">蓝儿唯美</span>
<a class="tag" taget="_blank" href="/search/oracle/1.htm">oracle</a>
                                    <div>由Oracle通信技术部门主导的演示项目并没有在本月较早前法国南斯举行的行业集团TM论坛大会中获得嘉奖。但是,Oracle通信官员解雇致力于打造一个支持零干预分配和编制功能的网络即服务(NaaS)平台,帮助企业以更灵活和更适合云的方式实现通信服务提供商(CSP)的连接产品。这个Oracle主导的项目属于TM Forum Live!活动上展示的Catalyst计划的19个项目之一。Catalyst计</div>
                                </li>
                                <li><a href="/article/874.htm"
                                       title="spring学习——springmvc(二)" target="_blank">spring学习——springmvc(二)</a>
                                    <span class="text-muted">a-john</span>
<a class="tag" taget="_blank" href="/search/springMVC/1.htm">springMVC</a>
                                    <div>Spring MVC提供了非常方便的文件上传功能。 
1,配置Spring支持文件上传: 
DispatcherServlet本身并不知道如何处理multipart的表单数据,需要一个multipart解析器把POST请求的multipart数据中抽取出来,这样DispatcherServlet就能将其传递给我们的控制器了。为了在Spring中注册multipart解析器,需要声明一个实现了Mul</div>
                                </li>
                                <li><a href="/article/1001.htm"
                                       title="POJ-2828-Buy Tickets" target="_blank">POJ-2828-Buy Tickets</a>
                                    <span class="text-muted">aijuans</span>
<a class="tag" taget="_blank" href="/search/ACM_POJ/1.htm">ACM_POJ</a>
                                    <div>POJ-2828-Buy Tickets 
http://poj.org/problem?id=2828 
线段树,逆序插入 
 
#include&lt;iostream&gt;#include&lt;cstdio&gt;#include&lt;cstring&gt;#include&lt;cstdlib&gt;using namespace std;#define N 200010struct</div>
                                </li>
                                <li><a href="/article/1128.htm"
                                       title="Java Ant build.xml详解" target="_blank">Java Ant build.xml详解</a>
                                    <span class="text-muted">asia007</span>
<a class="tag" taget="_blank" href="/search/build.xml/1.htm">build.xml</a>
                                    <div>1,什么是antant是构建工具2,什么是构建概念到处可查到,形象来说,你要把代码从某个地方拿来,编译,再拷贝到某个地方去等等操作,当然不仅与此,但是主要用来干这个3,ant的好处跨平台&nbsp;&nbsp; --因为ant是使用java实现的,所以它跨平台使用简单--与ant的兄弟make比起来语法清晰--同样是和make相比功能强大--ant能做的事情很多,可能你用了很久,你仍然不知道它能有</div>
                                </li>
                                <li><a href="/article/1255.htm"
                                       title="android按钮监听器的四种技术" target="_blank">android按钮监听器的四种技术</a>
                                    <span class="text-muted">百合不是茶</span>
<a class="tag" taget="_blank" href="/search/android/1.htm">android</a><a class="tag" taget="_blank" href="/search/xml%E9%85%8D%E7%BD%AE/1.htm">xml配置</a><a class="tag" taget="_blank" href="/search/%E7%9B%91%E5%90%AC%E5%99%A8/1.htm">监听器</a><a class="tag" taget="_blank" href="/search/%E5%AE%9E%E7%8E%B0%E6%8E%A5%E5%8F%A3/1.htm">实现接口</a>
                                    <div>android开发中经常会用到各种各样的监听器,android监听器的写法与java又有不同的地方;&nbsp; 
&nbsp; 
1,activity中使用内部类实现接口 ,创建内部类实例 &nbsp;使用add方法 &nbsp;与java类似 
&nbsp; 
创建监听器的实例 
myLis lis = new myLis(); 
&nbsp; 
使用add方法给按钮添加监听器 
&nbsp;</div>
                                </li>
                                <li><a href="/article/1382.htm"
                                       title="软件架构师不等同于资深程序员" target="_blank">软件架构师不等同于资深程序员</a>
                                    <span class="text-muted">bijian1013</span>
<a class="tag" taget="_blank" href="/search/%E7%A8%8B%E5%BA%8F%E5%91%98/1.htm">程序员</a><a class="tag" taget="_blank" href="/search/%E6%9E%B6%E6%9E%84%E5%B8%88/1.htm">架构师</a><a class="tag" taget="_blank" href="/search/%E6%9E%B6%E6%9E%84%E8%AE%BE%E8%AE%A1/1.htm">架构设计</a>
                                    <div>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 本文的作者Armel Nene是ETAPIX Global公司的首席架构师,他居住在伦敦,他参与过的开源项目包括 Apache Lucene,,Apache Nutch, Liferay 和 Pentaho等。 
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 如今很多的公司</div>
                                </li>
                                <li><a href="/article/1509.htm"
                                       title="TeamForge Wiki Syntax & CollabNet User Information Center" target="_blank">TeamForge Wiki Syntax & CollabNet User Information Center</a>
                                    <span class="text-muted">sunjing</span>
<a class="tag" taget="_blank" href="/search/TeamForge/1.htm">TeamForge</a><a class="tag" taget="_blank" href="/search/How+do/1.htm">How do</a><a class="tag" taget="_blank" href="/search/Attachement/1.htm">Attachement</a><a class="tag" taget="_blank" href="/search/Anchor/1.htm">Anchor</a><a class="tag" taget="_blank" href="/search/Wiki+Syntax/1.htm">Wiki Syntax</a>
                                    <div>the CollabNet user information center http://help.collab.net/ 
&nbsp; 
How do I create a new Wiki page? 
A CollabNet TeamForge project can have any number of Wiki pages. All Wiki pages are linked, and</div>
                                </li>
                                <li><a href="/article/1636.htm"
                                       title="【Redis四】Redis数据类型" target="_blank">【Redis四】Redis数据类型</a>
                                    <span class="text-muted">bit1129</span>
<a class="tag" taget="_blank" href="/search/redis/1.htm">redis</a>
                                    <div>概述 
Redis是一个高性能的数据结构服务器,称之为数据结构服务器的原因是,它提供了丰富的数据类型以满足不同的应用场景,本文对Redis的数据类型以及对这些类型可能的操作进行总结。 
Redis常用的数据类型包括string、set、list、hash以及sorted set.Redis本身是K/V系统,这里的数据类型指的是value的类型,而不是key的类型,key的类型只有一种即string</div>
                                </li>
                                <li><a href="/article/1763.htm"
                                       title="SSH2整合-附源码" target="_blank">SSH2整合-附源码</a>
                                    <span class="text-muted">白糖_</span>
<a class="tag" taget="_blank" href="/search/eclipse/1.htm">eclipse</a><a class="tag" taget="_blank" href="/search/spring/1.htm">spring</a><a class="tag" taget="_blank" href="/search/tomcat/1.htm">tomcat</a><a class="tag" taget="_blank" href="/search/Hibernate/1.htm">Hibernate</a><a class="tag" taget="_blank" href="/search/Google/1.htm">Google</a>
                                    <div>今天用eclipse终于整合出了struts2+hibernate+spring框架。 
我创建的是tomcat项目,需要有tomcat插件。导入项目以后,鼠标右键选择属性,然后再找到“tomcat”项,勾选一下“Is a&nbsp;tomcat project”即可。具体方法见源码里的jsp图片,sql也在源码里。 
&nbsp; 
&nbsp; 
补充1:项目中部分jar包不是最新版的,可能导</div>
                                </li>
                                <li><a href="/article/1890.htm"
                                       title="[转]开源项目代码的学习方法" target="_blank">[转]开源项目代码的学习方法</a>
                                    <span class="text-muted">braveCS</span>
<a class="tag" taget="_blank" href="/search/%E5%AD%A6%E4%B9%A0%E6%96%B9%E6%B3%95/1.htm">学习方法</a>
                                    <div>转自: 
http://blog.sina.com.cn/s/blog_693458530100lk5m.html 
http://www.cnblogs.com/west-link/archive/2011/06/07/2074466.html 
&nbsp; 
1)阅读features。以此来搞清楚该项目有哪些特性2)思考。想想如果自己来做有这些features的项目该如何构架3)下载并安装d</div>
                                </li>
                                <li><a href="/article/2017.htm"
                                       title="编程之美-子数组的最大和(二维)" target="_blank">编程之美-子数组的最大和(二维)</a>
                                    <span class="text-muted">bylijinnan</span>
<a class="tag" taget="_blank" href="/search/%E7%BC%96%E7%A8%8B%E4%B9%8B%E7%BE%8E/1.htm">编程之美</a>
                                    <div>package beautyOfCoding;

import java.util.Arrays;
import java.util.Random;

public class MaxSubArraySum2 {

	/**
	 * 编程之美 子数组之和的最大值(二维)
	 */
	private static final int ROW = 5;
	private stat</div>
                                </li>
                                <li><a href="/article/2144.htm"
                                       title="读书笔记-3" target="_blank">读书笔记-3</a>
                                    <span class="text-muted">chengxuyuancsdn</span>
<a class="tag" taget="_blank" href="/search/jquery%E7%AC%94%E8%AE%B0/1.htm">jquery笔记</a><a class="tag" taget="_blank" href="/search/resultMap%E9%85%8D%E7%BD%AE/1.htm">resultMap配置</a><a class="tag" taget="_blank" href="/search/ibatis%E4%B8%80%E5%AF%B9%E5%A4%9A%E9%85%8D%E7%BD%AE/1.htm">ibatis一对多配置</a>
                                    <div>1、resultMap配置 
2、ibatis一对多配置 
3、jquery笔记 
 
1、resultMap配置
当&lt;select resultMap=&quot;topic_data&quot;&gt;
&lt;resultMap id=&quot;topic_data&quot;&gt;必须一一对应。
(1)&lt;resultMap class=&quot;tblTopic&q</div>
                                </li>
                                <li><a href="/article/2271.htm"
                                       title="[物理与天文]物理学新进展" target="_blank">[物理与天文]物理学新进展</a>
                                    <span class="text-muted">comsci</span>

                                    <div> 
 
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 如果我们必须获得某种地球上没有的矿石,才能够进行某些能量输出装置的设计和建造,而要获得这种矿石,又必须首先进行深空探测,而要进行深空探测,又必须获得这种能量输出装置,这个矛盾的循环,会导致地球联盟在与宇宙文明建立关系的时候,陷入困境 
 
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 怎么办呢? 
 
&nbsp</div>
                                </li>
                                <li><a href="/article/2398.htm"
                                       title="Oracle 11g新特性:Automatic Diagnostic Repository" target="_blank">Oracle 11g新特性:Automatic Diagnostic Repository</a>
                                    <span class="text-muted">daizj</span>
<a class="tag" taget="_blank" href="/search/oracle/1.htm">oracle</a><a class="tag" taget="_blank" href="/search/ADR/1.htm">ADR</a>
                                    <div>Oracle Database 11g的FDI(Fault Diagnosability Infrastructure)是自动化诊断方面的又一增强。 
FDI的一个关键组件是自动诊断库(Automatic Diagnostic Repository-ADR)。 
 
在oracle 11g中,alert文件的信息是以xml的文件格式存在的,另外提供了普通文本格式的alert文件。 
这两份log文</div>
                                </li>
                                <li><a href="/article/2525.htm"
                                       title="简单排序:选择排序" target="_blank">简单排序:选择排序</a>
                                    <span class="text-muted">dieslrae</span>
<a class="tag" taget="_blank" href="/search/%E9%80%89%E6%8B%A9%E6%8E%92%E5%BA%8F/1.htm">选择排序</a>
                                    <div>
    public void selectSort(int[] array){
        int select;
        
        for(int i=0;i&lt;array.length;i++){
            select = i;
            
            for(int k=i+1;k&lt;array.leng</div>
                                </li>
                                <li><a href="/article/2652.htm"
                                       title="C语言学习六指针的经典程序,互换两个数字" target="_blank">C语言学习六指针的经典程序,互换两个数字</a>
                                    <span class="text-muted">dcj3sjt126com</span>
<a class="tag" taget="_blank" href="/search/c/1.htm">c</a>
                                    <div>示例程序,swap_1和swap_2都是错误的,推理从1开始推到2,2没完成,推到3就完成了 
# include &lt;stdio.h&gt;

void swap_1(int, int);
void swap_2(int *, int *);
void swap_3(int *, int *);

int main(void)
{
	int a = 3;
	int b = </div>
                                </li>
                                <li><a href="/article/2779.htm"
                                       title="php 5.4中php-fpm 的重启、终止操作命令" target="_blank">php 5.4中php-fpm 的重启、终止操作命令</a>
                                    <span class="text-muted">dcj3sjt126com</span>
<a class="tag" taget="_blank" href="/search/PHP/1.htm">PHP</a>
                                    <div>php 5.4中php-fpm 的重启、终止操作命令: 
查看php运行目录命令:which php/usr/bin/php 
查看php-fpm进程数:ps aux | grep -c php-fpm 
查看运行内存/usr/bin/php&nbsp; -i|grep mem 
重启php-fpm/etc/init.d/php-fpm restart 
在phpinfo()输出内容可以看到php</div>
                                </li>
                                <li><a href="/article/2906.htm"
                                       title="线程同步工具类" target="_blank">线程同步工具类</a>
                                    <span class="text-muted">shuizhaosi888</span>
<a class="tag" taget="_blank" href="/search/%E5%90%8C%E6%AD%A5%E5%B7%A5%E5%85%B7%E7%B1%BB/1.htm">同步工具类</a>
                                    <div>同步工具类包括信号量(Semaphore)、栅栏(barrier)、闭锁(CountDownLatch) 
&nbsp; 
闭锁(CountDownLatch) 
public class RunMain {
	public long timeTasks(int nThreads, final Runnable task) throws InterruptedException {
		fin</div>
                                </li>
                                <li><a href="/article/3033.htm"
                                       title="bleeding edge是什么意思" target="_blank">bleeding edge是什么意思</a>
                                    <span class="text-muted">haojinghua</span>
<a class="tag" taget="_blank" href="/search/DI/1.htm">DI</a>
                                    <div>不止一次,看到很多讲技术的文章里面出现过这个词语。今天终于弄懂了——通过朋友给的浏览软件,上了wiki。&nbsp; 
我再一次感到,没有辞典能像WiKi一样,给出这样体贴人心、一清二楚的解释了。为了表达我对WiKi的喜爱,只好在此一一中英对照,给大家上次课。 
&nbsp; 
In computer science,&nbsp;bleeding edge&nbsp;is a term that </div>
                                </li>
                                <li><a href="/article/3160.htm"
                                       title="c中实现utf8和gbk的互转" target="_blank">c中实现utf8和gbk的互转</a>
                                    <span class="text-muted">jimmee</span>
<a class="tag" taget="_blank" href="/search/c/1.htm">c</a><a class="tag" taget="_blank" href="/search/iconv/1.htm">iconv</a><a class="tag" taget="_blank" href="/search/utf8%26gbk%E7%BC%96%E7%A0%81/1.htm">utf8&gbk编码</a>
                                    <div>#include &lt;iconv.h&gt;
#include &lt;stdlib.h&gt;
#include &lt;stdio.h&gt;
#include &lt;unistd.h&gt;
#include &lt;fcntl.h&gt;
#include &lt;string.h&gt;
#include &lt;sys/stat.h&gt;

int code_c</div>
                                </li>
                                <li><a href="/article/3287.htm"
                                       title="大型分布式网站架构设计与实践" target="_blank">大型分布式网站架构设计与实践</a>
                                    <span class="text-muted">lilin530</span>
<a class="tag" taget="_blank" href="/search/%E5%BA%94%E7%94%A8%E6%9C%8D%E5%8A%A1%E5%99%A8/1.htm">应用服务器</a><a class="tag" taget="_blank" href="/search/%E6%90%9C%E7%B4%A2%E5%BC%95%E6%93%8E/1.htm">搜索引擎</a>
                                    <div>1.大型网站软件系统的特点? 
a.高并发,大流量。 
b.高可用。 
c.海量数据。 
d.用户分布广泛,网络情况复杂。 
e.安全环境恶劣。 
f.需求快速变更,发布频繁。 
g.渐进式发展。 
 
2.大型网站架构演化发展历程? 
a.初始阶段的网站架构。 
应用程序,数据库,文件等所有的资源都在一台服务器上。 
b.应用服务器和数据服务器分离。 
c.使用缓存改善网站性能。 
d.使用应用</div>
                                </li>
                                <li><a href="/article/3414.htm"
                                       title="在代码中获取Android theme中的attr属性值" target="_blank">在代码中获取Android theme中的attr属性值</a>
                                    <span class="text-muted">OliveExcel</span>
<a class="tag" taget="_blank" href="/search/android/1.htm">android</a><a class="tag" taget="_blank" href="/search/theme/1.htm">theme</a>
                                    <div>Android的Theme是由各种attr组合而成, 每个attr对应了这个属性的一个引用, 这个引用又可以是各种东西. 
&nbsp; 
在某些情况下, 我们需要获取非自定义的主题下某个属性的内容 (比如拿到系统默认的配色colorAccent), 操作方式举例一则: 
int defaultColor = 0xFF000000;
int[] attrsArray = { andorid.r.</div>
                                </li>
                                <li><a href="/article/3541.htm"
                                       title="基于Zookeeper的分布式共享锁" target="_blank">基于Zookeeper的分布式共享锁</a>
                                    <span class="text-muted">roadrunners</span>
<a class="tag" taget="_blank" href="/search/zookeeper/1.htm">zookeeper</a><a class="tag" taget="_blank" href="/search/%E5%88%86%E5%B8%83%E5%BC%8F/1.htm">分布式</a><a class="tag" taget="_blank" href="/search/%E5%85%B1%E4%BA%AB%E9%94%81/1.htm">共享锁</a>
                                    <div>首先,说说我们的场景,订单服务是做成集群的,当两个以上结点同时收到一个相同订单的创建指令,这时并发就产生了,系统就会重复创建订单。等等......场景。这时,分布式共享锁就闪亮登场了。 
&nbsp; 
共享锁在同一个进程中是很容易实现的,但在跨进程或者在不同Server之间就不好实现了。Zookeeper就很容易实现。具体的实现原理官网和其它网站也有翻译,这里就不在赘述了。 
&nbsp; 
官</div>
                                </li>
                                <li><a href="/article/3668.htm"
                                       title="两个容易被忽略的MySQL知识" target="_blank">两个容易被忽略的MySQL知识</a>
                                    <span class="text-muted">tomcat_oracle</span>
<a class="tag" taget="_blank" href="/search/mysql/1.htm">mysql</a>
                                    <div>1、varchar(5)可以存储多少个汉字,多少个字母数字?     相信有好多人应该跟我一样,对这个已经很熟悉了,根据经验我们能很快的做出决定,比如说用varchar(200)去存储url等等,但是,即使你用了很多次也很熟悉了,也有可能对上面的问题做出错误的回答。     这个问题我查了好多资料,有的人说是可以存储5个字符,2.5个汉字(每个汉字占用两个字节的话),有的人说这个要区分版本,5.0</div>
                                </li>
                                <li><a href="/article/3795.htm"
                                       title="zoj 3827 Information Entropy(水题)" target="_blank">zoj 3827 Information Entropy(水题)</a>
                                    <span class="text-muted">阿尔萨斯</span>
<a class="tag" taget="_blank" href="/search/format/1.htm">format</a>
                                    <div> 题目链接:zoj 3827 Information Entropy 
 题目大意:三种底,计算和。 
 解题思路:调用库函数就可以直接算了,不过要注意Pi = 0的时候,不过它题目里居然也讲了。。。limp→0+plogb(p)=0,因为p是logp的高阶。 
#include &lt;cstdio&gt;
#include &lt;cstring&gt;
#include &lt;cmath&</div>
                                </li>
                </ul>
            </div>
        </div>
    </div>

<div>
    <div class="container">
        <div class="indexes">
            <strong>按字母分类:</strong>
            <a href="/tags/A/1.htm" target="_blank">A</a><a href="/tags/B/1.htm" target="_blank">B</a><a href="/tags/C/1.htm" target="_blank">C</a><a
                href="/tags/D/1.htm" target="_blank">D</a><a href="/tags/E/1.htm" target="_blank">E</a><a href="/tags/F/1.htm" target="_blank">F</a><a
                href="/tags/G/1.htm" target="_blank">G</a><a href="/tags/H/1.htm" target="_blank">H</a><a href="/tags/I/1.htm" target="_blank">I</a><a
                href="/tags/J/1.htm" target="_blank">J</a><a href="/tags/K/1.htm" target="_blank">K</a><a href="/tags/L/1.htm" target="_blank">L</a><a
                href="/tags/M/1.htm" target="_blank">M</a><a href="/tags/N/1.htm" target="_blank">N</a><a href="/tags/O/1.htm" target="_blank">O</a><a
                href="/tags/P/1.htm" target="_blank">P</a><a href="/tags/Q/1.htm" target="_blank">Q</a><a href="/tags/R/1.htm" target="_blank">R</a><a
                href="/tags/S/1.htm" target="_blank">S</a><a href="/tags/T/1.htm" target="_blank">T</a><a href="/tags/U/1.htm" target="_blank">U</a><a
                href="/tags/V/1.htm" target="_blank">V</a><a href="/tags/W/1.htm" target="_blank">W</a><a href="/tags/X/1.htm" target="_blank">X</a><a
                href="/tags/Y/1.htm" target="_blank">Y</a><a href="/tags/Z/1.htm" target="_blank">Z</a><a href="/tags/0/1.htm" target="_blank">其他</a>
        </div>
    </div>
</div>
<footer id="footer" class="mb30 mt30">
    <div class="container">
        <div class="footBglm">
            <a target="_blank" href="/">首页</a> -
            <a target="_blank" href="/custom/about.htm">关于我们</a> -
            <a target="_blank" href="/search/Java/1.htm">站内搜索</a> -
            <a target="_blank" href="/sitemap.txt">Sitemap</a> -
            <a target="_blank" href="/custom/delete.htm">侵权投诉</a>
        </div>
        <div class="copyright">版权所有 IT知识库 CopyRight © 2000-2050 E-COM-NET.COM , All Rights Reserved.
<!--            <a href="https://beian.miit.gov.cn/" rel="nofollow" target="_blank">京ICP备09083238号</a><br>-->
        </div>
    </div>
</footer>
<!-- 代码高亮 -->
<script type="text/javascript" src="/static/syntaxhighlighter/scripts/shCore.js"></script>
<script type="text/javascript" src="/static/syntaxhighlighter/scripts/shLegacy.js"></script>
<script type="text/javascript" src="/static/syntaxhighlighter/scripts/shAutoloader.js"></script>
<link type="text/css" rel="stylesheet" href="/static/syntaxhighlighter/styles/shCoreDefault.css"/>
<script type="text/javascript" src="/static/syntaxhighlighter/src/my_start_1.js"></script>





</body>

</html>